课程网站建设技术,沈阳做网站找思路,响应式自助建站平台,wordpress v4.1在Go语言中#xff0c;包的引用和搜索路径是由环境变量GOPATH和GO111MODULE共同决定的。
GOPATH环境变量#xff1a;这个变量定义了默认的工作目录#xff0c;Go命令行工具将会在这个目录下查找包文件。这个目录通常包含三个子目录#xff1a;src、bin和pkg。
src目录包含…在Go语言中包的引用和搜索路径是由环境变量GOPATH和GO111MODULE共同决定的。
GOPATH环境变量这个变量定义了默认的工作目录Go命令行工具将会在这个目录下查找包文件。这个目录通常包含三个子目录src、bin和pkg。
src目录包含所有的源代码。
bin目录存放编译后的可执行文件。
pkg目录存放编译后的包文件。
GO111MODULE环境变量这个变量用来开启或关闭模块支持。
如果GO111MODULEoff那么Go会使用GOPATH来查找依赖并且依赖会被安装到GOPATH中src同级的bin和pkg目录。
如果GO111MODULEon或者未设置但项目根目录下有go.mod文件Go将使用模块系统。在这种情况下依赖关系将被下载到一个特定的$GOPATH/pkg目录而不是GOPATH的src目录外并且编译的可执行文件将不会放入GOPATH/bin除非你显式地设置了GOBIN环境变量。
设置这些环境变量通常在你的shell配置文件中进行例如.bashrc、.bash_profile或.zshrc。
例如在bash shell中设置GOPATH和GO111MODULE
export GOPATH$HOME/go
export GO111MODULEon
export GOPRIVATEgithub.com/mycorp/*
export PATH$PATH:$GOPATH/bin在这个例子中我们将GOPATH设置为用户主目录下的go文件夹开启了模块支持设置了私有模块的访问权限并且将Go的可执行文件目录添加到了PATH环境变量中。
在Go项目中引用包你可以使用相对路径或者是绝对路径。绝对路径通常是指从 $GOPATH/src或者模块的$GOPATH/pkg目录开始的路径。相对路径是指项目内部的路径。
例如引用同一个GOPATH中的另一个项目的包
import myproject/anotherpackage引用模块代理下的包当GO111MODULEon时
import rsc.io/quote引用标准库中的包
import fmt引用外部模块中的包通常在go.mod文件所在目录下
import github.com/gin-gonic/gin注意在Go 1.16及以后的版本中GO111MODULE默认是开启的并且GOPATH的功能已经被减少主要用于兼容老的代码。在新的项目中建议使用Go模块进行依赖管理。