我有一个简单的main.go
文件,如下所示:
package main
import "fmt"
func init() {
fmt.Println("init!")
}
func main() {
// init()
fmt.Println("main")
}
当我运行此程序时,我看到以下输出!
init
main
我完全糊涂了!我猜两个带有func()
签名的函数都作为入口点运行。但是,更有趣的是,我无法调用init
中的main
函数!
有人可以解释一下这段代码有什么问题吗?
答案 0 :(得分:6)
init
是special name for a function that initializes a package。它是自动调用的,并且规范提及" init函数不能从程序中的任何地方引用"。你应该使用任何其他名称。