每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会 在main函数前被调用。
//init函数 package main import ( "fmt" ) //定义一个init函数 func init(){ fmt.Println("init执行") } func main() { fmt.Println("main执行") }
1、如果一个文件同时包含全局变量定义,init函数和main函数,则执行的流程是全局变量定义>init函数>main函数
//init函数 package main import ( "fmt" ) //定义一个全局变量 var a1 = test() func test() int{ fmt.Println("test执行") return 10 } //定义一个init函数 func init(){ fmt.Println("init执行") } func main() { fmt.Println("main执行") fmt.Println(a1) }
2、init函数最主要的作用,就是完成一些初始化的工作
package utils var Age int var Name string //使用init函数进行初始化 func init() { Age = 10 Name = "小明" }
//init函数 package main import ( "fmt" "go_code/project01/main/demo08/utils" ) func main() { fmt.Println(utils.Age,utils.Name) }