环境变量介绍
GOROOT:Golang的安装路径。
GOPATH:可以理解为工作目录或者工作区,也是平时接触最多的一个变量。它可以是一个目录,可以是多个目录路径,每个目录代表一个工作区。这些目录用于放置Go语言的源码文件(src),以及安装(命令go install)后的归档文件(pkg目录)和可执行文件(bin目录)。
GOBIN:GOROOT目录下的可执行文件放置目录,一般指bin。
理解构建和安装Go的过程
go build命令
go build 有很多种编译方法,如无参数编译、文件列表编译、指定包编译等,使用这些方法都可以输出可执行文件。
go build 还有一些附加参数,可以显示更多的编译信息和更多的操作,详见下表所示。
go build编译时的附加参数
-v 编译时显示包名
-p n 开启并发编译,默认情况下该值为 CPU 逻辑核数
-a 强制重新构建
-n 打印编译时会用到的所有命令,但不真正执行
-x 打印编译时会用到的所有命令
-race 开启竞态检测
go run 命令
go run 命令会编译源码,并且直接执行源码的 main() 函数,不会在当前目录留下可执行文件。
工作目录被设置为当前目录。在 go run 的后部可以添加参数,这部分参数会作为代码可以接受的命令行输入提供给程序。
go run 不能使用“go run+包”的方式进行编译,如需快速编译运行包,需要使用如下步骤来代替:
1、使用 go build 生成可执行文件。
2、运行可执行文件。
go install 命令
go install 的功能和 go build 类似,附加参数绝大多数都可以与 go build 通用。go install 只是将编译的中间文件放在 GOPATH 的 pkg 目录下,以及固定地将编译结果放在 GOPATH 的 bin 目录下。
go install 的编译过程有如下规律:
go install 是建立在 GOPATH 上的,无法在独立的目录里使用 go install。
GOPATH 下的 bin 目录放置的是使用 go install 生成的可执行文件,可执行文件的名称来自于编译时的包名。
go install 输出目录始终为 GOPATH 下的 bin 目录,无法使用-o附加参数进行自定义。
GOPATH 下的 pkg 目录放置的是编译期间的中间文件。
go get命令
go get使用时的附加参数
使用 go get 时可以配合附加参数显示更多的信息及实现特殊的下载和安装操作,详见下表所示。
go get 使用时的附加参数
附加参数 备 注
-v 显示操作流程的日志及信息,方便检查错误
-u 下载丢失的包,但不会更新已经存在的包
-d 只下载,不安装
-insecure 允许使用不安全的 HTTP 方式进行下载操作
golang 包命名规则
第一条规则,同目录下的源码文件的代码包声明语句要一致。也就是说,它们要同属于一个代码包。这对于所有源码文件都是适用的。
第二条规则,源码文件声明的代码包的名称可以与其所在的目录的名称不同。在针对代码包进行构建时,生成的结果文件的主名
称与其父目录的名称一致。(import后面的最后一个元素是路径,就是目录,并非包名。)