Go 包的多个源目录
在 Go 中,开发具有多个源目录的包可能具有挑战性,尤其是当您想要组织时您的代码结构,同时保持用户易于导入。
虽然在跨多个源文件中声明相同的包名称似乎很自然不同的目录,不推荐这种方式。根据 Go 语言规范,实现可能要求包的所有源文件都位于同一目录中。尝试从同一个包导入多个目录将导致错误:
error: redefinition of ‘mypackage’
Go 提供了几种替代方案,而不是声明多个源目录:
重命名文件名:构建文件名以模仿文件夹层次结构。而不是:
foo/foo1.go foo/bar/bar1.go foo/bar/bar2.go
使用:
foo/foo1.go foo/bar-bar1.go foo/bar-bar2.go
总而言之,不建议跨多个源目录开发 Go 包。推荐的方法包括重命名文件名、拆分包或利用内部包。这些替代方案使您能够有效地组织代码,同时确保正确的包导入和可见性。
以上是如何跨多个目录组织 Go 包而不出现导入错误?的详细内容。更多信息请关注PHP中文网其他相关文章!