Go语言中init函数执行的顺序

发布时间 2023-07-29 21:49:48作者: tangjicheng

init 函数的执行规则:

  1. 对于同一个 go 文件,init 函数的执行顺序从上到下,即在代码中先出现的 init 函数会先执行。

  2. 对于同一个 package,不同文件是按照文件名字符串比较的结果决定执行顺序的,字符串越小的文件越早被初始化。

  3. 对于不同的 package,如果不相互依赖,则按照 import 的顺序决定初始化顺序。

  4. 如果 package 存在依赖,则先初始化被依赖的 package。

  5. 每个 package 只会被初始化一次。

  6. main 函数总在所有 init 函数执行完后,才会执行。

这些规则确保了在 Go 程序开始执行 main 函数之前,所有的变量初始化和 init 函数都已经完成。这样可以保证在 main 函数运行时,所有的其他包都已经准备就绪。