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

时间:2013-03-08 14:07:33

标签: go

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

我在两个文件中有一个堆栈玩具示例(一个用于类型定义和方法,称为stack.go,一个用于主程序,称为main.go),两者都在我的{{1}中}目录。

  1. 如何命名每个文件?它有什么重要意义吗?是否至少有一个约定?强制命名?
  2. 包裹名称应该是什么?我明白他们应该使用相同的包名,但哪一个?是GOPATH/src/stacker吗?
  3. stacker中,我应该如何使用main.go指令导入import
  4. 我尝试了很多种组合,直到现在都没有。

1 个答案:

答案 0 :(得分:9)

  1. 您可以根据自己的喜好命名文件,只需注意_test_<arch>_darwin_unix等特殊后缀。另请注意,前缀为._的文件不会编译到包中!
  2. 建议您将包命名为文件所在的文件夹,尽管在声明package mypkg
  3. 中以不同方式命名包可能(但令人困惑)
  4. 如果stack.gomain.go位于同一文件夹/包中,则无需导入。 stack.go中的所有内容都已在main.go中提供,因为它位于同一个包中。
  5. 如果stacker应编译成可执行文件,则应使用package main