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

Go:来自库的函数调用

Go:来自库的函数调用

Go
料青山看我应如是 2021-11-29 16:49:35
现在我真的很困惑。这是我的问题(Go 对我来说是新的):第一文件:// main.gopackage mainimport "./libraries/test"func main() {    test.foo()}第二个文件:// test.gopackage testimport "fmt"func foo() {    fmt.Println("foo")}我的结构是这样的:main.go   /libraries        /test           test.go如果我编译此代码,我将收到以下错误消息:./main.go:7: 不能引用未导出的名称 test.foo./main.go:7: 未定义: test.foo如果我更改foo到Foo任何地方,错误就会消失并且程序按预期工作。
查看完整描述

2 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

在 Go 中,符号的名称是用大写还是小写的驼峰写是一个重要的区别。这适用于函数,也适用于类型(如结构或接口)以及结构成员。

您可以在Go 文档中阅读此内容(重点是我的):

名称在 Go 中与在任何其他语言中一样重要。它们甚至具有语义效果:包外名称的可见性取决于其第一个字符是否为大写

这意味着您不能随意命名函数和类型。如果您需要从另一个模块调用此函数,则必须将其命名为Foo,而不是foo


查看完整回答
反对 回复 2021-11-29
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我想您还没有仔细阅读 Go 文档。所有以大写字母开头的名称都从它们的包中导出。不导出所有小写名称。


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

添加回答

举报

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