我们安装好golang后,可以在windows的cmd命令下直接查看和使用go命令和环境变量。同样可以在linux下的console中使用,如下图所示:C:\Users\lijie1>goenvsetGO111MODULE=setGOARCH=amd64setGOBIN=setGOCACHE=C:\Users\lijie1\AppData\Local\go-buildsetGOENV=C:\Users\lijie1\AppData\Roaming\go\envsetGOEXE=.exesetGOFLAGS=setGOHOSTARCH=amd64setGOHOSTOS=windowssetGOINSECURE=setGONOPROXY=setGONOSUMDB=setGOOS=windowssetGOPATH=E:\go-projectsetGOPRIVATE=setGOPROXY=https://goproxy.cn,directsetGOROOT=C:\Go\gosetGOSUMDB=offsetGOTMPDIR=setGOTOOLDIR=C:\Go\go\pkg\tool\windows_amd64setGCCGO=gccgosetAR=arsetCC=gccsetCXX=g++setCGO_ENABLED=1setGOMOD=setCGO_CFLAGS=-g-O2setCGO_CPPFLAGS=setCGO_CXXFLAGS=-g-O2setCGO_FFLAGS=-g-O2setCGO_LDFLAGS=-g-O2setPKG_CONFIG=pkg-configsetGOGCCFLAGS=-m64-mthreads-fmessage-length=0-fdebug-prefix-map=C:\Users\lijie1\AppData\Local\Temp\go-build491479286=/tmp/go-build-gno-record-gcc-switches我们也可以直接输入go查看go支持的命令GO111MODULEGO111MODULE是gomodules函数的开关。本文不详细介绍gomodules。这就涉及到go的一个非常重要的管理机制。后面会有专门的文章来分析。我们可以简单理解为没有gomodules机制,当时go项目中第三方函数包的管理非常复杂和专业,导致程序员在开发时管理第三方函数包非常不方便,所以开发了gomodules机制。该开关通过GO111MODULE环境变量进行配置。GO111MODULE=off,不支持模块,go命令行将不支持模块功能,查找依赖包的方式将沿用旧版本通过vendor目录或GOPATH方式搜索。GO111MODULE=on,modulesupport,go命令行会使用modules,根本不会在GOPATH目录下搜索。GO111MODULE=auto,默认值,go命令行会根据当前目录判断是否开启模块功能。这种情况分为两种情况:当前目录在GOPATH/src之外且该目录包含go.mod文件,并且启用了模块支持。当前文件位于包含go.mod文件的目录下。注意:GOPATH在使用gomodules时是没有意义的,但它仍然会将下载的依赖存放在$GOPATH/pkg/mod中,并将goinstall的结果放在$GOPATH/bin中。开启模块功能后,依赖包的存放位置改为$GOPATH/pkg,允许同一个包的多个版本共存,多个项目可以共享缓存的模块。命令设置如下:goenv-wGO111MODULE=on注意:如果以后不需要使用,可以将值设为off。从字面意思就可以看出GOPROXY。GOPROXY代表go的代理设置。之所以要这个环境变量,是因为go的语言不像C语言。在C语言中,如果我们要使用别人的第三方代码,一般有两种方式:在go语言中,类似于java,可以在编程的时候引入第三方代码的库地址,比如git仓库,然后在编译的时候,IDE会自动拉取第三方库文件到当前工程中。这样做虽然很方便,但是带来了一个问题:网速和限制。golang默认的GOPROXY是https://goproxy.io。这是官方设定。我们可以使用国内代理。Windows下的设置如下:,由于一些限制,我们不能顺利的使用和下载这些仓库,会导致下载缓慢或失败,所以这时候就需要一个代理来实现下载。这个代理是一个中间人,可以跨限制访问。golang默认的GOPROXY是https://goproxy.io,这是官方设置的。我们可以使用国内代理。Windows下设置如下:goenv-wGOPROXY=https://goproxy.cn,direct注意:其中-w表示写操作。官方参考设置代理详情请参考https://goproxy.cn/。gomoduleproxysettingGo1.13及以上(推荐)$goenv-wGO111MODULE=on$goenv-wGOPROXY=https://goproxy.cn,directmacOS或Linux$exportGO111MODULE=on$exportGOPROXY=https://goproxy.cn或$echo"exportGO111MODULE=on">>~/.profile$echo"exportGOPROXY=https://goproxy.cn">>~/.profile$source~/.profileWindows打开你的PowerShell并执行C:\>$env:GO111MODULE="on"C:\>$env:GOPROXY="https://goproxy.cn"
