golang 全局变量_Golang:模块初始化

本文介绍了Golang中的init函数,包括其特点和用途:无参数无返回值,用于初始化全局变量和执行一次性操作,执行顺序早于main函数。文中还探讨了模块内和模块间的init函数执行顺序,并提供了示例代码进行说明。
摘要由CSDN通过智能技术生成

预计阅读时间——15分钟

1074d3be0a382ef19cac5d938c64b27e.png

南京总统府

一般来说,我们通常会讲Go程序的入口函数是main,是否还有比main函数更早得到运行的函数呢?

这篇文档就会讲到关于初始化函数init,尽量言简意赅以例子的形式展开。

init函数

Finally, each source file can define its own niladic init function to set up whatever state is required. (Actually each file can have multiple init functions.) And finally means finally: init is called after all the variable declarations in the package have evaluated their initializers, and those are evaluated only after all the imported packages have been initialized.
Besides initializations that cannot be expressed as declarations, a common use of init functions is to verify or repair correctness of the program state before real execution begins.

每个模块都可以有一个或者多个init函数,它们的特性和作用是:

  • init函数的signature是无参数,无返回值
  • 初始化模块(文件)中全局变量声明无法初始化的复杂类型:map,slice,array等
  • 模块中仅执行一次的操作,如:数据库初始化,cache初始化,读取配置文件等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值