Go:来自库的函数调用
现在我真的很困惑。这是我的问题(围棋对我来说是新的): Firs文件:Go:来自库的函数调用,go,Go,现在我真的很困惑。这是我的问题(围棋对我来说是新的): Firs文件: // main.go package main import "./libraries/test" func main() { test.foo() } 第二个文件: // test.go package test import "fmt" func foo() { fmt.Println("foo") } 我的结构如下所示: mai
// main.go
package main
import "./libraries/test"
func main() {
test.foo()
}
第二个文件:
// test.go
package test
import "fmt"
func foo() {
fmt.Println("foo")
}
我的结构如下所示:
main.go
/libraries
/test
test.go
如果我编译此代码,我将收到以下错误消息:
./main.go:7:无法引用未报告的名称test.foo
./main.go:7:未定义:test.foo
如果我将
foo
更改为foo
,则错误消失,程序按预期运行。我想您没有仔细阅读Go文档。所有以大写字母开头的名称都将从其包中导出。不会导出所有小写名称
这意味着您不能随意命名函数和类型。如果您需要从另一个模块调用此函数,它必须命名为
Foo
,而不是Foo
太好了,我可能在我的Go
书中遗漏了这个细节。所以我可以想到小写的名字,比如私有类型
;这两个小时花得很好。@Volker我读过这本书:我可能会错过一些东西。