為什么我不能init從另一個函數調用函數,init()只是函數正確,為什么我不能只調用該init函數,我應該更改 golang RFC 來實現它嗎package mainimport ( "fmt")func init() { fmt.Println("Hello, playground")}func main() { go init() fmt.Println("Hello, playground")}錯誤 :./prog.go:12:8: undefined: init
2 回答

慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
Go 編程語言規范
包初始化
init 標識符只能用于聲明 init 函數,但標識符本身并未聲明。因此,不能從程序中的任何地方引用 init 函數。
為了實現您的目標,請調用一個函數。
例如,
package main
import (
? ? "fmt"
)
func init() {
? ? f("init")
}
func f(s string) {
? ? fmt.Printf("f(%q)\n", s)
}
func main() {
? ? f("main")
}
游樂場:https://play.golang.org/p/isyrCIeYCV4
輸出:
f("init")
f("main")

ITMISS
TA貢獻1871條經驗 獲得超8個贊
init 不能被調用,它將在包加載時運行。
package main
import (
"fmt"
)
func init() {
fmt.Println("Hello, playground")
}
func main(){
}
結果:你好,游樂場
- 2 回答
- 0 關注
- 172 瀏覽
添加回答
舉報
0/150
提交
取消