GoLang 包初始化

  1. 每个源文件都可以定义一个或多个初始化函数(func init(){})
  2. 所有初始化函数都会在单一线程上在main函数之前,仅且仅执行一次
  3. 编译器不能保证初始化函数的执行次序
  4. 初始化函数是在当前包的全局变量初始化【零值或初始化表达式值】完成之后执行
  5. 不能在程序代码中直接或间接调用初始化函数