Skip to content

3.3.7 - 局部声明

局部变量可以声明在语法块中的任意位置。声明可以同时做初始化:

stat ::= local attnamelist [‘=’ explist]
attnamelist ::=  Name attrib {‘,’ Name attrib}

如果有初始化赋值,则其语法与多重赋值一致(参见3.3.3)。否则,所有的变量都初始化为nil

每个变量名后可以跟一个属性(一个在尖括号中的名称):

attrib ::= [‘<’ Name ‘>’]

属性有两种可能的值:const——声明一个常量;即一个不能在初始化后再次赋值的变量。close——声明一个待关闭变量(参见3.3.8)。

一个代码块也时一个语法块(参见3.3.2),因此也可以在显式语法块之外的代码块中声明局部变量。

局部变量的可见性规则解释可以参见3.5