Go init函数详解

参考链接:https://blog.csdn.net/benben_2015/article/details/79486077

1)init()函数会在每个包完成初始化后自动执行,并且执行优先级比main函数高。init 函数通常被用来:

对变量进行初始化
检查/修复程序的状态
注册
运行一次计算
包的初始化


2)为了使用导入的包,首先必须将其初始化。初始化总是以单线程执行,并且按照包的依赖关系顺序执行。这通过Golang的运行时系统控制,如下图所示:

初始化导入的包(递归导入)
对包块中声明的变量进行计算和分配初始值
执行包中的init函数

原文地址:https://www.cnblogs.com/wangjq19920210/p/15161135.html