最佳答案
我试图找到一个精确的解释init()
函数在Go中的作用。我读了有效的去说,但我不确定我是否完全理解它说什么。我不太确定的句子是:
finally的意思是最后:init是在包中所有变量声明都计算了它们的初始化式之后调用的,并且只有在所有导入的包都初始化之后才会计算这些初始化式。
all the variable declarations in the package have evaluated their initializers
是什么意思?这是否意味着如果你宣称“全球”;一个包及其文件中的变量,init()将不会运行,直到它的所有内容都被求值,然后它将运行所有init函数,然后main()当./main_file_name运行?
我还读了Mark Summerfield的书:
如果一个包有一个或多个init()函数,它们会在主包的main()函数被调用之前自动执行。
在我的理解中,init()
只在你打算运行main()时才相关,对吗?任何人都能更准确地理解init()
,请随意纠正我