面试题 / 10 / 6 / 创建于 2年前
引入的时候执行。一个文件可以有多个init,执行顺序是不固定的
基本正确!
init函数是go初始化的一部分,由runtime初始化每个导入的包,初始化不是按照从上到下的导入顺序,而是按照解析的依赖关系,没有依赖的包最先初始化。
每个包首先初始化包作用域的常量和变量(常量优先于变量),然后执行包的init函数。同一个包,甚至同一个文件可以有多个init函数。init函数没有参数值,也没有返回值,不能被其他函数调用,同一个包内多个init函数的执行顺序不定。
init
执行顺序:import –> const –> var –>init–>main
import
const
var
main
执行顺序是按照init的定义的顺序依次执行,不是不固定的方式执行
可以看下这个:waterflow.link/articles/1666090530...
在同一个文件中的多个 init 方法,按照在代码中编写的顺序依次执行不同的 init 方法
我要举报该,理由是:
引入的时候执行。一个文件可以有多个init,执行顺序是不固定的
执行顺序是按照init的定义的顺序依次执行,不是不固定的方式执行
可以看下这个:waterflow.link/articles/1666090530...
解答:当该包中的所有变量声明都通过它们的初始化器求值后,init 函数才会被执行,当然 init 函数是在 main 函数之前执行的。
解答:不是,一个文件可以有无数多个 init 函数。
在同一个文件中的多个 init 方法,按照在代码中编写的顺序依次执行不同的 init 方法