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

从子包中的 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 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号