💡
函数init
无参、无返回值
无法显示调用,运行时调用,顺序、仅执行一次
一个包或一个go文件可以包含多个init函数
init函数在编译期间,非并发调用,go会按顺序调用
不要依赖init函数的调用次序
init适合做包级数据初始化以及初始化状态检查
程序初始化顺序
等价于包的初始化
go遵循【深度优先】的规则,先初始化依赖层级最深的包,然后依次往外初始化
根据包的初始化顺序,依赖其它包。依次初始化包、const、var、init