繁体   English   中英

GO“拆分”程序包配置设置

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM