Lua - Logical operators

Lua 的邏輯運算會將 false 與 nil 視為 false,其它值視為 true。


所以 and、or 運算寫起來就會像下面這樣。

1
2
3
4
5
6
7
8
print(10 or 20)            
print(true or false)
print(nil or "a")
print(nil and 10 )
print(true and false)
print(false and nil)
print(false or nil)
print(10 and 20)



and、or 運算也可以用作三元運算處理,最前面是條件值,然後用 and 運算接條件成立時要回傳的值,再 or 運算接條件不成立時要回傳的值即可。

1
2
print(true and 1 or 2)
print(false and 1 or 2)



至於 not 運算就是把 true、false 反轉。

1
2
3
4
print(not true)
print(not false)
print(not nil)
print(not 1)