每个源文件都可以包含一个init函数,该函数会在main函数执行前,被go运行框架调用也就是说init会在main函数前被调用
通常可以在init函数中完成初始化工作
如果一个文件同时包含全局变量定义 init函数和main函数,则执行的流程是
全局变量定义-----》init函数------》main函数
package main
import(
"fmt"
"go_code/project01/func/utils"
)
//全局变量
var age = test()
func test() int {
fmt.Println("test()")
return 10
}
func init(){
fmt.Println("init()")
}
func main(){
fmt.Println("main()")
fmt.Printf("Age = %v,Name = %v",utils.Age,utils.Name)
}
package utils
var Age int
var Name string
func init(){
Age = 10
Name = "法外狂徒"
}
结果:
init()
main()
Age = 10,Name = 法外狂徒