Go語言中同一個package中函數(shù)互相調(diào)用為undefined的解決
更新時間:2023年03月03日 10:59:57 作者:wongyaa
這篇文章主要介紹了Go語言中同一個package中函數(shù)互相調(diào)用為undefined的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
同一個package中函數(shù)互相調(diào)用為undefined的解決
代碼如下:
package main
import "fmt"
func main() {
myFunc()
}
func init() {
fmt.Println("there is main.init()")
}package main
import "fmt"
func init() {
fmt.Println("there is myClass.init()")
}
func myFunc() {
fmt.Println("there is myClass.myFunc()")
}執(zhí)行main方法后得到:

解決方案
GoLand通過option+F12打開Terminal終端執(zhí)行一下操作:
go run *.go
或者
go build . ./run // 恕我直言,這種方法還沒成功
同一個package下不同文件中函數(shù)調(diào)用報未定義問題
代碼如下:
- hello.go文件
package main
import "fmt"
func hello() ?{
? ?fmt.Print("go =======")
}- main.go文件
package main
func main() {
? ? hello()
}編譯過程報錯:
# command-line-arguments
test\main.go:10:3: undefined: hello
Process finished with exit code 2
出現(xiàn)這樣的原因是hello.go文件并未編譯
解決方式大致有兩種
- 第一個:通過go命令編譯,go run *.go 或 (go bulid . ,. run)
- 第二個:通過單元測試調(diào)用函數(shù)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

