go语言中的init() 函数是什么时候执行的?

在main函数之前执行

init()函数是go初始化的一部分,由runtime初始化每个导入的包,初始化不是按照从上到下的导入顺序,而是按照解析的依赖关系,没有依赖的包最先初始化

每个包首先初始化包作用域的常量和变量(常量优先于变量),然后执行包的 init() 函数。同一个包,甚至是同一个源文件可以有多个 init() 函数。 init() 函数没有入参和返回值,不能被其他函数调用,同一个包内多个 init() 函数的执行顺序不做保证

执行顺序: import  - > const -> var -> init() -> main() 

一个文件可以有多个 init() 函数

猜你喜欢

转载自blog.csdn.net/qq_48626761/article/details/131979512
今日推荐