go程序初始化顺序

在一个 go 程序中通常包含:包、常量、变量、init()、main()等元素,如果同时存在多个包,包之间存在依赖关系,每个包中存在多个 init 函数,每个文件中存在多个 init 函数,那么问题来了,他们之间的执行顺序是什么样的?通过本文我们来对它们之间的执行顺序做尽可能详尽的说明。如有不正之处,欢迎批评指正。

包的执行顺序

go 程序的初始化顺序见下图:

init 和 main 函数

init()、main() 是 go 语言中的保留函数,两个函数在 go 语言中的区别如下: 相同点:

不同点:

两个函数的执行顺序:

常量、变量、init()、main()

在同一个文件中,常量、变量、init()、main() 依次进行初始化。

go编程:浅析go程序初始化顺序

© 2020 - 2022 · Gonejack · Theme Simpleness Powered by Hugo ·