golang的进程初始化顺序是:先初始化全局变量,再调用init函数
所以需要注意的是:当全局变量初始化时,可能依赖的模块并没有初始化完成,所以最好不要使用函数来初始化本模块的全局变量,可以将之放入到init函数中。
``` code
package main
import "fmt"
var a = hello()
func hello() int {
fmt.Println("hello a")
return 0
}
func main() {
fmt.Println(a, b)
}
func init() {
fmt.Println("world")
}
```
xietaodembp:tmp xietao$ go run main.go
hello a
world a
0
有疑问加站长微信联系(非本文作者)