Go入门学习笔记一:工程结构
- 原创
- 作者:程序员三丰
- 发布时间:2021-07-13 10:03
- 标签:
Go
学习笔记
- 浏览量:675
一般的编程语言往往对工程(项目)的目录结构是没有什么规定的,但是Go语言却在这方面做了相关规定。项目的构建主要是靠 GOPATH来实现的。这么说吧,如果想要构建一个项目,就需要将这个项目的目录添加到 GOPATH 中,多个项目之间可以使用;分隔。如果不配置 GOPATH,即使处于同一目录,代码之间也无法通过绝对路径相互调用。
Go语言工程结构
一个Go语言项目的目录一般包含以下3个子目录:
- src目录
- 放置项目和库的源文件。
- 用于以包(package)的形式组织并存放Go源文件,这里的包与src目录下的每个子目录是一一对应的。
- 例如:若一个源文件被声明属于log包,那么它应当保存在src/log目录中。
- 包是Go语言管理代码的重要机制。Go源文件中第一段有效代码必须是 Package <包名>的形式。
- pkg目录
- 放置编译后生成的包/库的归档文件。
- 用于存放通过Go install命令安装某个包后的归档文件。归档文件是指那些名称以“.a”结尾的文件。
- 编译和安装项目代码的过程一般会以代码包为单位进行,比如log包被编译安装后,将生成一个名为log.a的归档文件,并且存放在当前项目的pkg目录下。
- bin目录
- 放置编译后生成的可执行文件。
- 与pkg目录类似,在通过go install命令安装完成后,保存由Go命令源文件生成的可执行文件。
- 在类Unix操作系统下,这个可执行文件的名称与命令源文件的文件名相同。
- 在Windows操作系统下,这个可执行文件的名称则是命令源文件的文件名加.exe后缀。
源文件
- 命令源文件
- 如果一个Go源文件被声明属于main包,并且该文件中包含main函数,则它就是命令源文件。
- 命令源文件属于程序的入口,可以通过Go语言的go run 命令运行或通过go build命令生成可执行文件。
- 库源文件
- 库源文件则是指存在于某个包中的普通源文件,并且源文件中不包含main函数。
- 不管是命令源文件还是库源文件,在同一个目录下的所有源文件,其所属包的名称必须是一致的。