EdmondFrank's 时光足迹

この先は暗い夜道だけかもしれない それでも信じて進むんだ。星がその道を少しでも照らしてくれるのを。
或许前路永夜,即便如此我也要前进,因为星光即使微弱也会我为照亮前途。
——《四月は君の嘘》

Go语言var/init/main的执行顺序

Go语言var/init/main的执行顺序

执行顺序(降序):

  1. var
  2. init
  3. main

大家也可以亲自动手把下面的代码复制到Go Playground上执行看看!

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package main

var someVar = defaultVar()

func init() {
    println("main.init was called")
}

func main() {
    println("main.main was called")
}

func defaultVar() int {
    println("main.var was initialized")
    return 0
}

输出结果如下:

main.var was initialized

main.init was called

main.main was called