引言#

100个Go语言典型错误

mistakes#

  • init#

init 会在包初始化时引入,因此可以通过导入副作用的方式初始化init

1
_ "github.echin.xxxxx"

不适合使用 init 的三种情况

  1. init 会限制错误管理,因为他只能使用 panic
  2. 全局变量管理管理,因为init的初始化是基于包名字母顺序来实现的,且这个全局变量依赖随时可以改变,一般通过封装变量实现
  3. 测试复杂度的增加,这个真恶心,详见助手业务的一堆init

init 一般用于 静态数据 的初始化