3.4.5 - 逻辑操作
Lua中的逻辑操作就是and、or和not。与控制结构(参见3.3.4)类似,所有的逻辑操作将false和nil都视为假值而其他则视为真值。
取反操作not总是返回false或true。逻辑与操作and中,当第一个参数为false或nil时会将其返回;否则and返回第二个参数。逻辑或操作or中,当第一个参数的值不同于false或nil时会将其返回,否则or返回第二个参数。and和or都使用短路规则,第二个操作数只有在必要的时候才会被评估。这里是一些例子:
10 or 20 --> 10
10 or error() --> 10
nil or "a" --> "a"
nil and 10 --> nil
false and error() --> false
false and nil --> false
false or nil --> nil
10 and 20 --> 20