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()函数的 执行顺序 -
不同包下 按照包导入的依赖关系决定执行顺序(依赖关系:导入的包中可能还导入了其他的包) -
导入相同包只会执行一次