【发布时间】:2020-01-07 15:04:25
【问题描述】:
我是这里的 Golang 初学者,正在为如何使用外部包中的函数而苦恼
我这里有源代码,就像下面这棵树
-samplego
--pkg
--src
---github.com
----pkg1
-----a.go
-----pkg2
-------b.go
在 b.go 中,我想使用 a.go 中的函数,但编译器告诉我,即使我将函数声明为 public(第一个字符为大写字母),该函数也是未定义的。
我想知道在使用之前我是否必须从 a.go 导入任何东西,但我想我会得到循环导入,因为在 a.go 中也使用来自 b.go 的函数。
谢谢。
【问题讨论】:
-
Go 中没有“外部”包。并且没有“内部”或“父级”或诸如此类的包。所有的包裹都是平等的。 (为真正的学究而挑剔:stdlib、内部和供应商有额外的规则)。如果你想使用包中的任何东西,你必须导入它,不,你不能循环导入,在这种情况下你必须重新设计。