官方网站优化价格,网址建设,网站开发系统绿色版,上海搜牛信息科技有限公司Init()包初始化
执行优先级 Init()函数的执行优先级比main()函数的执行优先级要高,也就是说程序会优先执行Init()函数之后再执行main()函数. 代码如下 package mainimport fmtfunc init() {fmt.Println(执行了Init()函数)
}func main() {fmt.Println…Init()包初始化
执行优先级 Init()函数的执行优先级比main()函数的执行优先级要高,也就是说程序会优先执行Init()函数之后再执行main()函数. 代码如下 package mainimport fmtfunc init() {fmt.Println(执行了Init()函数)
}func main() {fmt.Println(执行了main()函数)
}输出结果 执行了Init()函数
执行了main()函数Init()函数特点 不能修改函数的名称 不能有返回值 程序会被自动调用,不可以被引用 init()可以在任意包下,而且可以重复定义多个 在同一go文件下,多个init()函数的调用顺序是从上到下的 代码展示 package mainimport fmtfunc init() {fmt.Println(2.执行了Init()函数)
}
func init() {fmt.Println(1.执行了Init()函数)
}func main() {fmt.Println(执行了main()函数)
} 结果展示 2.执行了Init()函数
1.执行了Init()函数
执行了main()函数同一package中的不同文件,优先执行mian()函数下的Init()函数之后,将按文件名字符串进行从小到大排序,之后顺序调用文件中的Init()函数 - 对于不同package,如果互不依赖,按照main包中import的顺序调用其包中的init()函数 - 对于不同package,如果存在依赖,调用顺序为最后被依赖的最先被初始化,依赖顺序例如: mian导入pkg1,pkg1导入pkg2,pkg2导入pkg3,Init()执行顺序: pkg3 - pkg2 -pkg1-mian,注意避免死循环的情况,例如pkg3 - pkg2 -pkg1-mian-pkg3 执行顺序: pkg3 - pkg2 -pkg1-mian,注意避免死循环的情况,例如pkg3 - pkg2 -pkg1-mian-pkg3 - 在导入包的时候在导包符号前加_(空白标记符),就可以只执行包内的Init()函数,也可以避免报错 例如: _src/a