无法理解如何编译多个文件中的代码

Fab*_*ien 3 go

好的,Go的主要卖点是它易于编译和精彩的工具链,但作为一个新手,我真的迷失在那里,无法理解关于这一点的文档.

我在两个文件中有一个堆栈玩具示例(一个用于类型定义和方法stack.go,一个用于主程序,一个用于调用main.go),两个都在我的GOPATH/src/stacker目录中.

  1. 应该如何命名每个文件?它有什么重要意义吗?是否至少有一个约定?强制命名?
  2. 包名应该是什么?我明白他们应该使用相同的包名,但哪一个?是stacker吗?
  3. main.go,我应该如何使用该import指令导入stack.go

我尝试了很多组合,直到现在都没有工作.

Eri*_*ner 9

  1. 只要你喜欢,你可以命名文件,只需提防特殊后缀的像_test_<arch>(_darwin,_unix,等).另请注意,前缀._不会编译到包中的文件!
  2. 建议您将包命名为文件所在的文件夹,尽管在声明中以不同方式命名包可能(但令人困惑) package mypkg
  3. 如果stack.go与文件夹/包在同一文件夹中main.go,则无需导入.stack.go已经完成的所有内容都已提供main.go,因为它位于同一个包中.

如果stacker要编译成可执行文件,你应该使用package main.

  • 你应该提一下,如果`stacker`应该编译成一个可执行文件而不是一个导入包,它应该是`package main`. (4认同)