[备忘] Go init 行为

Origin at 
总结基础规则:所有的 init 函数都在一个 Goroutine 中执行(但请参见下面的特殊注意)如果 package a 引用了 package b,那么 a 的 init 一定在 b 的 init 运行完成后运行 main package 的 main 函数一定在其他 init 函数均运行完成后再运行(即运行顺序为 package 的 init -> main 的 init -> main 的 main)同一 package 中的多个文件中的 init 执行顺序未定义,同一文件中的 init 自上而下运行如果 package a 同时引用了 package b 和 c,那么 b 与 c 的……