go 的internal 目录
Go 语言中的软件包推荐按照:组织名/项目名 的形式安排软件包的文件目录结构,一般「项目名」文件目录下还会按照功能、抽象约定、具体实现等维度再划分一些子目录。在 Go 语言里包的导入路径不同则被判定为不同的包。
Go语言1.4版本后增加了 Internal packages 特征用于控制包的导入,即internal package只能被特定的包导入。
内部包的规范约定:导入路径包含internal关键字的包,只允许internal的父级目录及父级目录的子包导入,其它包无法导入。
在如上的文件中,除了main.go
文件以外,剩下的都能用。