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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-30 17:12:10310浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn