首页 > 后端开发 > Golang > Go 包可以跨多个目录而无需复杂的导入吗?

Go 包可以跨多个目录而无需复杂的导入吗?

Mary-Kate Olsen
发布: 2024-12-30 17:12:10
原创
304 人浏览过

Can Go Packages Span Multiple Directories Without Complicated Imports?

将 Go 包组织到多个目录

问题:

是否可以将 Go 包组织到多个源目录而不需要用户有繁琐的导入?

答案:

不,Go 语言规范中没有明确支持它。语言规范规定,包可能要求所有源文件驻留在同一目录中。

实现多个目录的后果:

如果您尝试声明“package” mypackage”在多个目录中,你会遇到编译错误。发生这种情况是因为语言规范允许实现拒绝此类结构。

推荐方法:

建议使用以下方法,而不是组织到目录中:

  • 使用文件名来模仿文件夹结构:例如,而不是使用“foo1.go”和“bar1.go”,使用“foo-foo1.go”和“foo-bar1.go”。
  • 考虑拆分成多个包:如果您的包太大,请考虑将其分成更小的包以便更好地组织。

有限范围的内部包(Go 1.5 及更高版本):

在 Go 1.5 及更高版本中,您可以使用“内部”子文件夹在包内创建内部包。这允许您将源文件组织到不同的文件夹中,同时仍然保持包内的层次结构。但是,外部包无法导入或使用内部包。

以上是Go 包可以跨多个目录而无需复杂的导入吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板