Go 语言 工作区的目录主要分为 src 目录、pkg 目录 以及 bin 目录。
Go语言工作区
一般情况下,Go 语言的源码文件必须放在工作区中。但是对于命令源码文件来说,这不是必需的。工作区其实就是一个对应于特定工程的目录,它应包含 3 个子目录:src 目录、pkg 目录和 bin 目录。
- src目录
用于以代码包的形式组织并保存 Go 源码文件,这里的代码包与 src 下的子目录一一对应。例如,若一个源码文件被声明属于代码包 log,那么它就应当保存在 src/log 目录中。
当然,也可以把 Go 源码文件直接放在 src 目录下,但这样的 Go 源码文件就只能被声明属于 main 代码包了。除非用于临时测试或演示,一般还是建议把 Go 源码文件放入特定的代码包中。
- pkg目录
用于存放通过 go install 命令安装后的代码包的归档文件。前提是代码包中必须包含 Go 库源码文件。归档文件是指那些名称以 .a 结尾的文件。该目录与 GOROOT 目录下的 pkg 目录功能类似。区别在于,工作区中的 pkg 目录专门用来存放用户代码的归档文件。
编译和安装用户代码的过程一般会以代码包为单位进行。比如 log 包被编译安装后,将生成一个名为 log.a 的归档文件,并存放在当前工作区的 pkg 目录下的平台相关目录中。
- bin目录
与 pkg 目录类似,在通过 go install 命令完成安装后,保存由 Go 命令源码文件生成的可执行文件。在类 Unix 操作系统下,这个可执行文件一般来说名称与源码文件的主文件名相同。而在 Windows 操作系统下,这个可执行文件的名称则是源码文件主文件名加 .exe 后缀。