gpt4 book ai didi

git - 如何在 golang 的一个存储库下相互导入包?

转载 作者:IT王子 更新时间:2023-10-29 01:59:44 25 4
gpt4 key购买 nike

我想在后面的示例中了解如何正确导入包。

我已阅读此主题 ( How to use custom packages in golang? ),但它没有解释我想了解的内容。

例如,我想创建一个包以便在我的程序中进一步使用它并在 github.com 上发布。在我看来,代码应该是这样组织的:

src/
github.com/
username/
repository/
lib1.go #package repository
lib2.go #package repository
sublib/
sublib1.go #package sublib
sublib2.go #package sublib
...

myproject/
programname.go #package main
#there is no problem how to import my repository here:
#import "github.com/username/repository"
#or import "github.com/username/repository/sublib"

好的,此时我想了解如何在 repository/sublib 中导入 repository 的代码,反之亦然。我认为问题更针对内部导入(在一个存储库下)。

第一个解决方案显然是——通过完整路径导入包:

  • github.com/username/repositorysublib1.go
  • github.com/username/repository/subliblib1.go

嗯,但是如果我以后改变路径怎么办?可能有更好的方法来导入内部包。当我在 sublib1.go 中导入 github.com/username/repository 时,我也遇到了问题(我收到错误消息 import cycle not allowed)。

我希望我已经解释得很好,可以回答这个问题。

最佳答案

您不能在 Go 中进行循环导入,它们是明确禁止的。您唯一的选择是重新考虑拆分包的方式,以免出现循环。

关于git - 如何在 golang 的一个存储库下相互导入包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26887117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com