Go语言:初始化函数 init() 的使用详解
2019-10-14 本文已影响0人
白祤星
定义:
- 每个包都可以定义
一个
或多个
init() 函数
-
init() 函数
没有 参数传递
-
init() 函数
没有 返回值
package main
func init() {
println(`执行了初始函数1`)
}
func init() {
println(`执行了初始函数2`)
}
func main() {
println(`执行了主函数`)
}
执行顺序:
-
init() 函数
的执行顺序在main() 函数
之前 - 按照
源文件文件
的文件名排序
,编译顺序 决定 执行顺序
- 当一个
源文件
中有多个 init() 函数
时,执行顺序从上到下
-
导入包的顺序
即是init()函数
的 执行顺序 -
不同包
下 按照包导入的依赖关系
决定执行顺序(依赖关系
:导入的包中可能还导入了其他的包
) -
导入相同包
只会执行一次