经过了这么多节的学习和铺垫,相信大家对Go语言已经有了一个相对全面的认识。我们也通过好几个示例程序感受到了Go语言的风格和特点。今天这篇文章主要从Go程序的源码文件组织形式来给大家做一个总结,让大家更加清晰的认识和了解Go语言程序里,是怎么组织你的代码的!
通过前面的学习,我们知道了Go的源码文件是一个以.go为后缀,内容以Go语言代码组织的文件。多个Go源码文件是需要用代码包组织起来的。
源码文件分类
Go的源码文件分为三类:命令源码文件、库源码文件(Go语言程序) 和测试源码文件(辅助源码文件)。
命令源码文件
声明自己属于main代码包、包含无参数声明和结果声明的main函数;被安装后,相应的可执行文件会被存放到GOBIN指向的目录或<当前工作区目录>/bin下。命令源码文件是Go程序的入口,但不建议把程序都写在一个文件中;同一个代码包中强烈不建议直接包含多个命令源码文件。
库源码文件
不具备命令源码文件的那两个特征的源码文件, 被安装后,相应的归档文件会被存放到<当前工作区目录>/pkg/<平台相关目录>下。库源码文件中无包含无参数声明和无结果声明的main函数,不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用。
测试源码文件
不具备命令源码文件的那两个特征的源码文件。名称以_test.go为后缀。其中至少有一个函数的名称以Test或Benchmark为前缀。并且,该函数接受一个类型为*testing.T或*testing.B的参数。
这下你应该知道你的Go程序各个部分的代码都属于哪些分类以及如何组织了吧?