执行顺序是按照导入包的顺序执行,而不是按照调用先后顺序执行。
1、init 的主要作用:初始化。
2、init 的主要特点:
- init 函数先于 main 函数自动执行,不能被其他函数调用;
- init 函数没有输入参数、返回值;
- 每个包可以有多个 init 函数(一般建议只写一个init,便于维护和可读性);
- 包的每个源文件也可以有多个 init 函数,这点比较特殊;
- 同一个包的 init 执行顺序, golang 没有明确定义,编程时要注意程序不要依赖这个执行顺序。
- 不同包的 init 函数按照包导入的依赖关系决定执行顺序。
3、值得注意的地方:
1)、【import _ 包路径】的含义
为了调用init()函数,无法通过包名来调用包中的其他函数。
2)、包前有. 的含义 import(.“fmt”)
导入包之后在你调用这个包的函数时,可以省略前缀的包名,以前调用写fmt.Println(“hello world”),现在可以省略写成Println(“hello world”)
3)、别名操作
别名操做调用包函数时前缀变成了重命名的前缀
import( f “fmt” )
f.Println(“hello world”)