go init函数
2019-02-28 本文已影响0人
StevenQin
每一个源文件都可以包含一个
int
函数,该函数会在main
函数执行前,被Go运行框架调用,也就是说init会在main函数前调用
//通常在init函数做初始化的工作
func init() {
fmt.Println("init()....")
}
func main() {
fmt.Println("main()....")
}
细节
1、如果一个文件中包含全局变量,init,main
执行的顺序为:全局变量
--> init
--->main
package main
import (
"fmt"
)
var age = test()
func test() int {
fmt.Println("test()...")
return 90
}
//通常在init函数做初始化的工作
func init() {
fmt.Println("init()....")
}
func main() {
fmt.Println("main()....")
fmt.Println("age=", age)
}
2、init
的主要作用是用于初始化工作
新建一个
uitls/uitls.g
//uitls.go中的代码
package utils
import (
"fmt"
)
var Age int
var Name string
func init() {
fmt.Println("uitls中的init()....")
Age = 100
Name = "tom~~"
}
//---------------------------------------------
//main.go中的代码
package main
import (
"demofunc02/utils"
"fmt"
)
var age = test()
func test() int {
fmt.Println("test()...")
return 90
}
//通常在init函数做初始化的工作
func init() {
fmt.Println("main包中的init()....")
}
func main() {
fmt.Println("main()....")
fmt.Println("age=", age)
fmt.Println("utils中初始化的Age=", utils.Age, ",utils中初始化的Name=", utils.Name)
}
3、