【问题标题】:Is it possible to two have pacakage name in a same folder in golang是否可以在golang的同一个文件夹中有两个包名
【发布时间】:2014-03-02 15:16:22
【问题描述】:

我是golang的新手。

基本上在 node.js 中,我用来组织我的一般功能,就像我将放入的那样

lib/
  validation.js
  convert.js
  ..

同样我会组织。 我需要在这里做同样的事情..

我试过了

lib/
 validation.go ( package name validator )
 convert.go ( package name converter )

在 main.go 中,它位于我的 src 文件夹的根级别 我像"./lib" 一样导入它只有在两个包名称相同时才有效,否则它会引发错误。

由于我需要单独的名称来调用这些函数,因此我无法提供相同的包以提高可读性。

所以基本上我可以在 lib 中创建另一个文件夹,并使用我可以提供的不同包名称。 这是可用的选项或存在其他一些可能性。

请提出一个好的做法和最佳方法。

【问题讨论】:

  • 每个目录不能有多个包名。您能否给我一个示例,说明每个文件中的函数名称是什么,我可以尝试给您一个如何组织它的示例。我通常不再以“lib”文件夹结束。它很简单,无法描述,并且在查看导入目录时对您可用的内容没有帮助。包名称往往不仅对组织很重要,而且对目的的明确性也很重要。
  • 请不要使用 ./foo 形式的导入。将语义上连接的代码放入公共目录中。一个包可以由多个文件组成。请使用正确的英语。
  • @CoryLaNou 每个目录可以有多个包名,只是不能使用go build。您必须编写一个自定义的 makefile,但当另一个选项只是 1 个目录 = 1 个包时特别推荐。

标签: go


【解决方案1】:

根据 golang.org 上的“Effective Go”文档:

另一个约定是包名是其源目录的基名;

【讨论】:

  • 我在同一个文件夹中看到多个包的一个地方是在进行黑盒测试时(例如包验证器和包验证器测试)。
猜你喜欢
  • 2018-02-01
  • 2011-12-15
  • 2011-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多