关于golang中go mod的使用,以及自己的一些心得

这里写自定义目录标题

为什么我会用go mod

我最开始接触go mod是为了导包,我使用的编辑器是vscode,在刚开始集成环境的时候,通过go env -w GO111MODULE=on直接就将环境变量给修改了,以至于后面再使用gopath路径进行导包的时候失败,
一直报这个错误
关于golang中go mod的使用,以及自己的一些心得
就是直接就不找gopath,直接找的goroot
原因如下:

go module相关配置

GO111MODULE

要启用go module支持首先要设置环境变量GO111MODULE,通过它可以开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是auto。

  1. GO111MODULE=off禁用模块支持,编译时会从GOPATH和vendor文件夹中查找包。
  2. GO111MODULE=on启用模块支持,编译时会忽略GOPATH和vendor文件夹,只根据 go.mod下载依赖。
  3. GO111MODULE=auto,当项目在$GOPATH/src外且项目根目录有go.mod文件时,开启模块支持。

简单来说,设置GO111MODULE=on之后就可以使用go module了,以后就没有必要在GOPATH中创建项目了,并且还能够很好的管理项目依赖的第三方包信息。

使用 go module 管理依赖后会在项目根目录下生成两个文件go.mod和go.sum。
修改的话直接在终端

go env -w GO111MODULE=on

输入这些就好了。
这些东西应该用哪个已经很清楚了,然后的话就是在gomod中一些需要注意的东西,

我遇到的问题

1.go mod如何使用。

首先,我么想导包,需要在我们的项目下 go mod init “项目名”
关于golang中go mod的使用,以及自己的一些心得
go mod init “项目名”
关于golang中go mod的使用,以及自己的一些心得
在项目下会生成一个go。mod文件
这是我们编辑一个简单的调用内容
这个是被调用的,我们定义一个Age全局变量,这个Age的A必须大写,这样才能被其他包调用
关于golang中go mod的使用,以及自己的一些心得
这个是调用者,
关于golang中go mod的使用,以及自己的一些心得
这里运行之后的结果为
关于golang中go mod的使用,以及自己的一些心得

2.当多个mod的时候,应该选择使用哪个mod

一般出现需要选择的时候应该都是嵌套使用,这里如果说你的项目已经go mod init了,再在外面有一个mod,这时候,是直接选择使用里面的mod的。

上一篇:图像检索:layer选择与fine-tuning性能提升验证


下一篇:vscode go语言环境搭建