1
如果 x 为 false 或者 nil 则给 x 赋初始值 v
x = x or v
2
C语言中的三元运算符
a ? b : c
在Lua中可以这样实现
(a and b) or c
3
我们可以这样进行交换变量的值
x, y = y, x -- swap 'x' for 'y'
a[i], a[j] = a[j], a[i] -- swap 'a[i]' for 'a[i]'
这利益于 Lua 中可以进行多变量赋值的语法特性,在 C 中,这是做不到的。