Golang中的调用函数

时间:2016-06-07 08:01:00

标签: go

我有这样的功能:

var flagvar int
func init() {
    flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
}

我想在func main()中调用它:

func main(){
  init()
}

但它没有用,并告诉我init()没有定义。 有什么问题?

1 个答案:

答案 0 :(得分:5)

init函数是Golang中的一个特殊函数。它是在第一次加载文件时执行的,因此您无需直接调用它。

来自官方文件:

  

最后,每个源文件都可以定义自己的niladic init函数来设置所需的状态。 (实际上每个文件可以有多个init函数。)最后意味着:在包中的所有变量声明评估了它们的初始值设定项之后调用init,并且只有在初始化了所有导入的包之后才对它们进行求值。