1. 概述
每一个源文件都可以有一个init
函数,这个函数会在main函数运行之前,被Go框架所调用。
2. init 函数的特征
init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等
每个包可以拥有多个init函数
包的每个源文件也可以拥有多个init函数
同一个包中多个init函数的执行顺序go语言没有明确的定义(说明)
不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序
init函数不能被其他函数调用,而是在main函数执行之前,自动被调用
3. init函数的注意事项和细节
如果一个文件同时包含全局变量的定义,init函数,main函数和全局变量的定义的执行流程:
1
2
3graph LR
A[全局变量定义] --> B(init 函数)
B --> C(main函数)init
函数最主要的作用就是完成初始化工作
例子:
1 | /** |