【发布时间】:2016-11-28 13:45:57
【问题描述】:
每个 Go 文件都以 package <something> 开头。
据我所知——这可能是我遗漏了一些信息的地方——<something> 只有两个可能的值:它所在的目录的名称*,或main。如果是main,则该目录中的所有其他文件也只能有main。如果是其他原因,则项目不一致/违反约定。
现在如果是目录名,那就是多余的,因为同样的信息在目录名中。
如果是main,这有点没用,因为据我所知,没有办法告诉go build“请构建所有 main包”。
* 因为,换句话说,一个目录就是一个包。
【问题讨论】:
-
如果您需要从
main访问项目中另一个文件中定义的某些功能或结构或接口怎么办?它还有助于遵循模块化方法来构建项目。 -
@ameyCU 那我就用它。来自同一包(= 目录)中所有文件的所有标识符都在一个范围内。
-
当你开始制作/导入一个包以在你的主包中使用它时。
-
其实有一种方法可以在 GOPATH 子树的某个根目录下构建所有主包,例如: go install -v github.com/foo/bar/... 将构建并安装所有对应于 GOPATH/src/github.com/foo/bar 下的 'package main' 包的可执行文件
标签: go