【发布时间】: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