go程序的初始化

变量初始化为对应类型的零值

例如:

type T struct { i int; f float64; next *T }
t := new(T)

初始化值为:

t.i == 0
t.f == 0.0
t.next == nil

包的初始化

下面的代码中,变量的初始化顺序为:d、b、c、a。

var (
	a = c + b
	b = f()
	c = f()
	d = 3
)

func f() int {
	d++
	return d
}

init函数:

init() { … }

开始执行

func main() { … }

参考

  1. 李佶澳的博客