为了账号安全,请及时绑定邮箱和手机立即绑定

go - 如何在golang中的一个存储库下在它们之间导入包?

go - 如何在golang中的一个存储库下在它们之间导入包?

Go
POPMUISE 2021-08-30 14:55:16
我想了解如何在后面的示例中正确导入包。我已经阅读了这个主题(如何在 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的代码,repository/sublib反之亦然。我认为问题更针对内部导入(在一个存储库下)。第一个解决方案显然是 - 通过完整路径导入包:github.com/username/repository在sublib1.go和github.com/username/repository/sublib 在 lib1.go嗯,但是如果我将来改变路径怎么办?可能有导入内部包更好的办法。我也正在面临着一个问题,当我输入github.com/username/repository的sublib1.go(我得到错误信息import cycle not allowed)。我希望我已经解释得很好来回答这个问题。
查看完整描述

2 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

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


查看完整回答
反对 回复 2021-08-30
  • 2 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信