您的位置:首页 > 编程语言 > Go语言

go语言中的main函数和init函数

2017-09-15 12:09 465 查看

main
函数和
init
函数

Go里面有两个保留的函数:
init
函数(能够应用于所有的
package
)和
main
函数(只能应用于
package main
)。这两个函数在定义时不能有任何的参数和返回值。虽然一个
package
里面可以写任意多个
init
函数,但这无论是对于可读性还是以后的可维护性来说,我们都强烈建议用户在一个
package
中每个文件只写一个
init
函数。

Go程序会自动调用
init()
main()
,所以你不需要在任何地方调用这两个函数。每个
package
中的
init
函数都是可选的,但
package main
就必须包含一个
main
函数。

程序的初始化和执行都起始于
main
包。如果
main
包还导入了其它的包,那么就会在编译时将它们依次导入。有时一个包会被多个包同时导入,那么它只会被导入一次(例如很多包可能都会用到
fmt
包,但它只会被导入一次,因为没有必要导入多次)。当一个包被导入时,如果该包还导入了其它的包,那么会先将其它包导入进来,然后再对这些包中的包级常量和变量进行初始化,接着执行
init
函数(如果有的话),依次类推。等所有被导入的包都加载完毕了,就会开始对
main
包中的包级常量和变量进行初始化,然后执行
main
包中的
init
函数(如果存在的话),最后执行
main
函数。下图详细地解释了整个执行过程:



转自:https://github.com/Agzs/golang-ebook/blob/master/zh/02.3.md
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息