本篇主要讲述Golang文件目录结构及相关的一些概念。
由于Golang的基本概念之间有着千丝万缕的联系,可能单独讲a概念会涉及到b概念,讲b概念会涉及到c概念,讲c概念又会涉及到a概念。故配以图片以便更好理解。同时,为了更全面的理解,建议阅读若干次,以将概念串联起来去理解。
1. 工作区
工作区就是通常提到的workspace。Golang并没有限制一个工作区必须对应一个项目。根据Golang的设计理念,一般来讲,我们可以将多个项目放置于同一个工作区。而每个项目可以在不同的代码仓库中。那么怎样设置工作区的路径呢,答案就是GOPATH环境变量。GOPATH环境变量可以包含多个值,每一个值即为一个工作区。如上所述,博主仅仅设定了一个工作区,路径为C:\GoProject(搭建安装环境时设定)
2. 工作区中的固定目录
在工作区中,通常有bin、src、pkg三个目录。目录结构如下所示:
|——src/
| |——a/
| | |——a1/
| | | |——a1.go
| | |——a2/
| | | |——a2.go
| |——b/
| | |——b1.go
| | |
| | |——b2.go
| | |
| |——cc/
| | |——c.go
|——bin/
|
|——pkg/
|
src目录放置不同版本的开发代码库,通常每个代码库下包含多个package(Golang中,包的概念);bin目录放置go install产生的的二进制可执行文件(通常基于main.go编译产生);pkg目录放置go install产生的静态链接文件(.a文件),具体地讲,静态链接文件通常放置在pkg目录的二级目录(以操作系统平台命名,如图1所示)