要构建Go语言的编译环境,首先得安装Go语言的编译工具git
官方路径:https://golang.google.cn/dl/,通常是访问不了,使用国内网站:https://studygolang.com/dl
而后须要设置环境变量
在windows下须要将go编译器的安装路径加到Path,还要设置GOROOT和GOPATH变量,分别对应GO安装目录和项目下的src目录。github
GO包管理通常有两种方式:GOPATH方式和GO Module方式
GOPATH方式是GO原生支持的方式,通常要求项目下包含三个目录:
bin:放置可执行文件
pkg:放置编译生成的lib包
src:放置源码,go编译查找源文件目录
例如项目结构以下:golang
通常源文件的包名就是所在的文件夹名,若是在main函数中要调用algorithms中的qsort中的函数,只须要import文件便可,路径为GOPATH/src下的路径:windows
若是须要导入github上的开源代码,直接import项目的url连接便可,而且须要go get导入到本地路径,go会自动在src目录下生成github.com目录。函数
Go Module管理方式
Go Module方式是golang1.11新增的特性,直接基于模块管理,而不是基于固定目录
要使用Go Module,须要先设置go变量GO111MODULE=on
要注意Go Module方式跟GOPATH方式不兼容,项目路径不能在GOPATH里。工具
在项目中不须要src目录,使用go mod init创建mod管理,会自动在项目下生成go.mod文件,若是须要依赖第三方代码,除了在项目中import以外,还须要使用go mod download下载包网站
go.mod文件示例:ui
在项目中引用库,本地库必须带上项目路径:google
go mod经常使用命令:url
命令 |
说明 |
download |
download modules to local cache(下载依赖包) |
edit |
edit go.mod from tools or scripts(编辑go.mod |
graph |
print module requirement graph (打印模块依赖图) |
init |
initialize new module in current directory(在当前目录初始化mod) |
tidy |
add missing and remove unused modules(拉取缺乏的模块,移除不用的模块) |
vendor |
make vendored copy of dependencies(将依赖复制到vendor下) |
verify |
verify dependencies have expected content (验证依赖是否正确) |
why |
explain why packages or modules are needed(解释为何须要依赖) |