GO'拆分'包配置设置

时间:2014-01-07 13:59:50

标签: go

去新手提醒:

我已经创建了一个我想要分成几个单独文件的包,但是我想要这样的布局:

\--src
    |---myLib.go
    |---myLib
          |--- file1.go
          |--- file2.go
          | ...
          |--- fileN.go

每个.go文件顶部都有“package myLib”,但我不确定如何让路径工作。 主文件“myLib.go”包含“package globals”和高级函数调用(导出),而file1,...,fileN文件基本上包含导出函数内部使用的“私有”非导出函数。

不确定如何设置导入,我试过的每个组合都得到了消息: 当我尝试将文件包含在myLib文件夹中时,“没有这样的文件或目录”。如果我把所有文件放在同一级别,那么它工作正常。从组织的角度来看,我更喜欢将导出函数的一个文件分开,并将所有未导出的函数/文件合并到子文件夹中。有什么建议/例子吗?

THX

2 个答案:

答案 0 :(得分:3)

你不能这样做。你必须这样做:

文件myLib.go必须放在myLib文件夹中。 (但你可以随意调用文件夹。)

了解标准lib的组织方式。

答案 1 :(得分:0)

关键部分是:同一目录中的所有.go和_test.go文件都应以相同的package <packagename>语句开头。包含具有main函数的文件的目录中的.go文件应该都具有package main语句 - 它们用于创建可执行文件(使用目录名称命名)。

  

file1,...,fileN文件基本上包含导出函数内部使用的“私有”非导出函数。

只有大写的函数和类型名称才能用于其他包(包括package main)。只要同一目录中的所有.go文件共享相同的package <pkgname>语句,您所拥有的设置就应该有效 - 例如,如果您将package mylib放在file1.go,file2.go中...... fileN.go(我还建议避免使用大写目录名称以避免混淆)。

还应该查看“如何编写Go代码”文档https://golang.org/doc/code.html或从中链接的截屏视频,这应该有助于Go代码库布局约定。

相关问题