3.2.4 包初始化

如果一个包有任何导入,则在对包本身进行初始化之前,首先初始化所有导入的包(直接或间接)。

在一个包中,通过迭代初始化一个或多个源代码文件中的所有包级变量。

在每次迭代中:

  1. 选择声明顺序中的变量

  2. 对于给定的变量

    • 如果该变量对未初始化的变量没有依赖,则初始化该变量

    • 否则,跳过该变量

  3. 如果此次迭代中初始化了任何新变量,则进入下一次迭代

  4. 否则,终止该过程

在此过程完成后,如果仍有变量未初始化,则该包无效。

最后更新于