为什么我不能从其他函数调用init
函数,init()
只是函数正确,为什么我不能仅调用init
函数,我应该更改golang RFC使其实现吗
package main
import (
"fmt"
)
func init() {
fmt.Println("Hello, playground")
}
func main() {
go init()
fmt.Println("Hello, playground")
}
错误:
./prog.go:12:8: undefined: init
最佳答案
The Go Programming Language Specification
Package initialization
初始化标识符只能用于声明初始化函数,但是
标识符本身未声明。因此,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")
关于go - 从另一个函数调用init函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57187435/