一 工作区和GOPATH
工作区是放置Go源码文件的目录。
一般情况下,Go源码文件都需要存放到工作区。
但是对于命令源码文件来说,这不是必须的。
每一工作区的结构都类似下图所示:
1、src目录
用于存放源码的文件
以代码包为组织形式
2、pkg目录
用于存放归档文件(名称以.a为后缀的文件)
所有归档文件都会被存放在该目录下的平台相关目录中,同样以代码包为组织形式。
平台相关目录:以$GOOS_$GOARCH为命名方式,如linux_amd64,其中GOOS和GOARCH是两个隐含的Go语言环境变量。
例如:<工作区目录>/pkg/<平台相关目录>/<一级代码包>/<二级代码包>/<末级代码包>.a
3、Bin目录
用于存放当前工作区中Go程序的可执行文件。
有两点需要注意
a:当环境变量GOBIN已有效设置时,该目录会变得无意义。
b:当GOPATH的值包含多个工作区的路径时,必须设置GOBIN,否则无法成功安装Go程序的可执行文件,
二 源码文件的分类和含义
名称以.go为后缀,内容以Go语言代码组织的文件
多个Go源码文件是需要用代码包组织起来的
源码文件分三类:
1、命令源码文件:
声明自己属于main代码包、包含无参数声明和结果声明的main函数。
被安装后,相应的可执行文件会被存放到GOBIN指向的目录或<当前工作区目录>/bin下。
命令源码文件是Go程序的入口,但不建议把程序都写在一个文件中。
注意:同一个代码包中强烈不建议直接包含多个命令源码文件。
2、库源码文件:
不具备命令源码文件的那两个特征的源码文件。
被安装后,相应的归档文件会被存放到<当前工作区目录>/pkg/<平台相关目录>下
3、测试源码文件:
不具备命令源码文件的那两个特征的源码文件。
名称以_test.go为后缀。
其中命令源码文件和库源码文件是一般意义上的go语言程序,测试源码文件是辅助源码文件。
请发表评论