Skip to content

3.4.5 - 逻辑操作

Lua中的逻辑操作就是andornot。与控制结构(参见3.3.4)类似,所有的逻辑操作将falsenil都视为假值而其他则视为真值。

取反操作not总是返回falsetrue。逻辑与操作and中,当第一个参数为falsenil时会将其返回;否则and返回第二个参数。逻辑或操作or中,当第一个参数的值不同于falsenil时会将其返回,否则or返回第二个参数。andor都使用短路规则,第二个操作数只有在必要的时候才会被评估。这里是一些例子:

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