golang 中有的 init 函数会先 main 函数执行,var 会先 init 函数执行,所以执行顺序为 var --> init() --> main() 。
/**
* @Author: v_bivwei
* @Description:
* @Date: 2020/7/4 16:44
*/
package main
import "fmt"
func init() {
fmt.Println("init func")
}
func main() {
fmt.Println("main func")
}
/**
* @Author: v_bivwei
* @Description:
* @Date: 2020/7/4 16:50
*/
package main
import "fmt"
func init() {
fmt.Println("init func")
global = 0
}
func convert() int {
fmt.Println("convert func")
return 100
}
var global = convert()
func main() {
fmt.Println("main func global = ", global)
}