論理演算子
Lua の論理演算子は、and、or、および not です。制御構造 (『制御構造』を参照) と同様に、すべての論理演算子は false と null の両方を false と見なし、それ以外はすべて true と見なします。
否定演算子 not は常に false または true を返します。論理積演算子 and は、最初の引数の値が false または null であれば最初の引数を返し、そうでない場合、and は 2 番目の引数を返します。論理和演算子 or は、最初の引数の値が null でも false でもない場合は最初の引数を返し、そうでない場合、or は 2 番目の引数を返します。and と or は両方ともショートカット評価を使用します。つまり、第 2 オペランドはそれが必要なときだけ評価されます。以下にいくつかの例を示します。
10 or 20 --> 10
10 or error() --> 10
null or "a" --> "a"
null and 10 --> null
false and error() --> false
false and --> false
false or null --> null
10 and 20 --> 20(このガイドでは、--> で式の結果を示します。)