文档章节

Go 的 init 函数会被执行几次?

mskk
 mskk
发布于 09/12 10:18
字数 432
阅读 34
收藏 0
Go

今天和同事探讨一个Go语言的问题:

Go 包中的 init函数,是在程序启动时执行一次,还是在每处调用该 package 的地方都会调用一次?

当时觉得每处引用都调用不太合理,这其中的关键就是明白 init 会在何时被调用。

于是翻开《Go语言实战》一书,看到这段话,豁然开朗:

每个包可以包含任意多个 init 函数,这些函数都会在程序执行开始的时候被调用。所有被编译器发现的 init 函数都会安排在 main 函数之前执行。init 函数用在设置包、初始化变量或其他要在程序运行前优先完成的引导工作。

这里就说的很明确了,只要能被编译器发现,都会在 main 函数之前执行,也就是不会在每次引用改包的时候都执行。

但要注意的是,一个包中的多个 init 函数的执行是不确定的,不同包的 init 函数执行按照包导入的依赖关系决定执行顺序。其他更多关于 init 函数的知识,推荐学习这篇文章:五分钟理解golang的init函数

参考资料

本文转载自:https://bingohuang.com/go-init-times/

mskk
粉丝 3
博文 187
码字总数 6713
作品 0
昆山
程序员
私信 提问
【深度总结】数组 reduce 一看一整天(附实现代码)

【深度总结】 JS数组 reduce 相关的方法,原理,应用,还有 polyfill 实现的 reduce, 其实你可以直接调到最后一章,了解一下 reduce 的实现即可。 💁♂️ Array.reduce 简述:用于迭代累加...

慢城小ZA
08/16
0
0
关于lm-sensors中i8k.c的研究

由于使用Dell Vostro,在Arch下看不到风扇的转速(当然更没法控制风扇)。 看了一下,发现是i8k的问题,于是拿来代码研究一下(虽然我是小白…… i8k的代码在:http://khali.linux-fr.org/d...

mingkaidox
2013/06/19
452
0
go中的main函数和init函数

Go里面有两个保留的函数:init函数(能够应用于所有的package)和main函数(只能应用于package main)。这两个函数在定义时不能有任何的参数和返回值。虽然一个package里面可以写任意多个ini...

爬墙
2016/05/19
105
0
多线程中的lua同步问题

转自 http://www.cnblogs.com/ghost240/p/3526185.html 最近写paintsnow::start时出现了一个非常麻烦的BUG,程序的Release版本大约每运行十几次就会有一次启动时崩溃(Debug版本还没崩溃过)...

狂斩一条龙
2014/04/16
0
0
Arduino初初教程9——红外遥控

红外遥控器发出的信号是一连串的二进制脉冲码。为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发射二极管发射出去,而红外线接收装置则...

小堤
2013/05/28
703
1

没有更多内容

加载失败,请刷新页面

加载更多

小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
29分钟前
2
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
31分钟前
2
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
39分钟前
4
1
正则表达式如何匹配一个单词存在一次或零次并且不占捕获组位置

正则表达式如何匹配一个单词存在一次或零次并且不占捕获组位置 今天要用正则表达式实现匹配一个词出现一次或者不出现的情况,但是又不仅仅是这么简单的需求。先详细说下我这种情况吧,也许有...

Airship
45分钟前
6
0
第八讲:asp.net C# web 读取文件

本讲主要讲解如何在asp.net页面上传文件。 首先,前台页面: 其次,后台页面: 结果: 1、前台效果: 2、后台结果:

刘日辉
56分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部