Go语言中init函数
一、基本介绍
每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init函数会在main函数前调用。
二、案例说明
package main
import (
"fmt"
)
func main() {
fmt.Println("main()...")
}
func init() {
fmt.Println("init()...")
}
输出结果:
init()...
main()...
三、注意细节
- 如果一个文件中同时包含全局变量定义,init函数和main函数,则执行流程是:全局变量定义->init函数->main函数
package main
import (
"fmt"
)
var a = test()
func main() {
fmt.Println("main()...")
}
func init() {
fmt.Println("init()...")
}
func test() int {
fmt.Println("test()...")
return 1
}
输出结果:
test()...
init()...
main()...
-
init函数最主要的作用,就是完成一些初始化的工作.
-
如果main.go引用了utils.go,且main.go和utils.go都含有全局变量定义,init函数时,执行流程如下图: