[英]GO 'split' package configuration setup
进入新手警报:
我创建了一个程序包,希望将其拆分为几个单独的文件,但是我想要这样的布局:
\--src
|---myLib.go
|---myLib
|--- file1.go
|--- file2.go
| ...
|--- fileN.go
每个.go文件的顶部都有“ package myLib”,但是我不确定如何使路径正常工作。 主文件“ myLib.go”包含“全局包”和高级函数调用(已导出),而file1,...,fileN文件本质上包含已导出函数在内部使用的“私有”非导出函数。
不确定如何设置导入,尝试将myLib文件夹中的文件包含在内时,我尝试过的每种组合都会收到消息:“无此类文件或目录”。 如果我将所有文件放在同一级别,则可以正常工作。 从组织的角度来看,我更喜欢将一个文件与导出的功能分开,并将所有未导出的功能/文件合并到一个子文件夹中。 有什么建议/例子吗?
谢谢
你不可以做这个。 您必须按预期进行:
文件myLib.go必须放在myLib文件夹中。 (但是您可以根据需要调用该文件夹。)
看一下标准库的组织方式。
关键是:同一目录中的所有.go和_test.go文件都应以相同的package <packagename>
语句开头。 目录中的.go文件包含具有main函数的文件,都应包含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代码库布局约定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.