我正在遵循Bookshelf tutorial在Google App Engine上构建Web服务。
要启动该应用程序,本教程将运行go run app.go auth.go template.go
。我不明白这是怎么回事。例如,如何在parseTemplate method中使用template.go中的app.go而没有template.go
的导入语句?
我的理解是,在Go项目中,我们有一个具有主要方法的入口文件。然后,该文件导入软件包以供内部使用。一次运行这三个文件有什么好处?
答案 0 :(得分:5)
该示例使用单个程序包,特别是main
程序包来实现所有功能。
每个软件包都可能包含多个文件,甚至main
软件包也是如此。在包内,您无需导入任何内容,就可以访问包中的所有内容。 Spec: Packages:
Go程序是通过将程序包链接在一起来构造的。程序包由一个或多个源文件构成,这些文件一起声明了属于该程序包的常量,类型,变量和函数,并且可在同一程序包的所有文件中访问。这些元素可能是exported,并在另一个包中使用。
特殊的main
包分成多个文件时,即在启动应用程序时必须列出所有文件:
go run app.go auth.go template.go
如果将示例分成多个包,则只有从main
导入其他包才能访问它们。