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。