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

从子包中的 main 导入 vars/consts

从子包中的 main 导入 vars/consts

Go
缥缈止盈 2021-06-28 09:11:57
我有一个$GOPATH/dalu/myproject带有以下文件的 Go 项目:main.go:package mainimport "dalu/myproject/subpackage"var GV string = "World"func main() {    subpackage.Hello()}subpackage/subpackage.go:package subpackageimport (    "fmt"    "dalu/myproject")func Hello() {    //? fmt.Println("Hello"+GV)}奖励(如果可以的话):我尝试了更多子包的类似方法,当尝试在 main 中导入一个子包时,该子包会导入另一个导入第一个提到的子包的子包,我得到“不允许导入循环”
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

正如编译器所说的那样,Go 不允许循环依赖,并且与 C++ 不同,这里没有前向声明技巧。

如果你有一个州: A imports B AND B imports A

这意味着您需要将它们之间共享的任何内容移动到 package C,然后执行以下操作: A imports B, C AND B imports C

每个人都很开心!

或者在您的示例中,添加一个名为的文件dalu/myproject/gv/gv.go并在其中定义 this GV。然后在这两个导入mainsubpackage


查看完整回答
反对 回复 2021-07-19
  • 1 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

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