定义:
- init()函数没有参数和返回值
- init()函数可以重复定义多个
- 一个包被其他多个包import,但只能被初始化一次
- init()函数只能由go程序自动调用,不能被引用
执行顺序:
- 在main包中的go文件默认总是会被执行
- 对同一个go文件的init()调用顺序是从上到下的
- 对同一个package中的不同文件,将文件名按照字符串进行‘从小到大’顺序,之后顺序调用各文件中init()函数
- 对于不同的package,如果不相互依赖的话,按照main包中import的顺序调用包中init()函数
- 如果package存在依赖,调用顺序为最后被依赖的最先被初始化,例如导入顺序main->A->B->C,则初始化顺序为C->B->A-mian