1.在多重赋值中,Lua先对等号右边的所有元素求值,然后才执行赋值。这也是通过多重赋值来交换变量的理论依据,例如:
x , y = y , x
意思是交换x与y
2.若要初始化一组变量,应为每个变量提供一个值,而表达式
a , b , c = 0
只会给a赋值
3.尽可能的使用局部变量是一种良好的编程风格。此外,访问局部变量比访问全局变量更快。最后,一个局部变量通常会伴随着其作用域的结束而结束,这样便使垃圾收集器可以释放其值
4.local foo = foo
这句代码创建了一个局部变量foo,并将用全局变量foo的值初始化它。这种方式还可以加速在当前作用域中对foo的访问
5.在需要的时候声明变量,可以使这个变量在初始化时就拥有一个有意义的初值。此外,缩短变量的作用域有助于提高代码的可读性
6.repeat-until语句重复执行其循环体直到条件为真时结束
7.在Lua中,一个声明在循环体中的局部变量的作用域包括了测试条件,例如:
local a = 0
repeat
a = a+2
local b = a*3
until b > 1000
在until中也可以访问b
8.如果不想给for循环设置上限的话,可以使用常量math.huge
9.for循环的控制变量会被自动地声明为局部变量,并仅在循环体内可见
10.ipairs迭代函数只能用于遍历数组,因为控制变量返回的是数字。pairs的循环变量是索引,而不是索引值,并且只会索引那些索引值非nil的
11.break和return只能是一个块的最后一条语句
12.do-end可以用来创建一个块