Lua中经常会用到 "a and b or c ",这类似于C语言中的表达式 a ? b : c,例如选出x和y中的较大者,可以使用一下语句:
x = 8
y = 5
max = (x>y) and x or y
print(max)
输出: 8
x = 3
y = 5
max = (x>y) and x or y
print(max)
输出: 5
证明如下:
若 x>y,则 (x>y) = true,则 (x>y) and x = x,则 max = x or y = x;
若 x<y,则 (x>y) = false,则 (x>y) and x = false,则 max = false or y = y。