使用外包文件中的函数

我是这里的 Golang 初学者,正在为如何使用外部包中的函数而苦苦挣扎


这里我有源代码作为下面的这棵树


-samplego

--pkg

--src

---github.com

----pkg1

-----a.go

-----pkg2

-------b.go

在 b.go 中,我想使用 a.go 中的函数,但编译器告诉我,即使我将函数声明为 public(第一个字符为大写字母),该函数也是未定义的。


我想知道在使用之前是否必须从 a.go 导入任何东西,但我想我会得到循环导入,因为在 a.go 中也使用来自 b.go 的函数。


哈士奇WWW
浏览 90回答 2
2回答

守着星空守着你

也许,a.go 和 pkg2 是平的,所以,你为什么不改变你的文件视图,比如:-samplego--pkg--src---github.com----pkg1-----a.go-----b.go如果你想保持你的文件结构,你应该使用 mod,等我一段时间。 -samplego--pkg--src---github.com----pkg1-----a.go-----pkg2-------b.go下面的命令: bashcd $(SAMPLEGO_PATH) // change path to samplego existsgo mod init samplego在b.go中,导入“samplego/src/github.com/pkg1”,然后通过pkg1.function从a.go导入函数;在a.go中,导入“samplego/src/github.com/pkg1/pkg2”,然后通过pkg2.function从b.go导入函数;

眼眸繁星

不幸的是,直到 Go2 才允许循环依赖。你想要做的事情可以用当前的 Go 版本来完成。您可以重构代码以创建一个包 C,其中包含必须导出的数据结构和方法。请记住,您需要使用go mod init YOUR_MODEL_NAME,然后您可以使用import YOUR_MODEL_NAME/package_name. 请记住,每个文件夹只能包含一个包。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go