Go语言中的init函数

本文介绍了Go语言中的init函数,包括其特性、与main函数的区别、执行顺序以及常见用途,如初始化变量、检查程序状态和注册操作。
摘要由CSDN通过智能技术生成

今天来了解一下Go语言中的init函数

Go语言中有两个保留的函数:main函数和init函数

init函数的特性如下:

init函数没有参数和返回值;
init函数不能被其他函数调用,只能被Go程序自动调用;
一个package中可以包含多个init函数;
一个go文件中可以包含多个init函数;
最好一个go文件中只写一个init函数;

init函数与main函数的区别:

init可以应用于任意包中,且可以重复定义多个;
main函数只能用于main包中,且只能定义一个。

init函数和main函数的执行顺序,导包的顺序,常量、变量的初始化顺序:

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值