短絡評価
CoddyのLuaジャーニー「Fundamentals」セクションの一部 — レッスン 23/90。
and および or 演算子では、短絡評価(ショートサーキット評価)と呼ばれる巧妙な最適化が使用されます。これは、Lua が最終的な結果が判明した時点で評価を停止し、式の一部を完全にスキップする可能性があることを意味します。
and 演算子の場合、最初の条件が false であれば、Lua は2番目の条件をチェックすることなく、式全体が false になることを即座に判断します:
playerAlive = false
hasWeapon = true
canFight = playerAlive and hasWeapon
-- Lua は playerAlive (false) のみをチェックし、hasWeapon を評価することはありません同様に、or 演算子の場合、最初の条件が true であれば、Lua は結果が true になることを認識し、2番目の条件をスキップします:
hasKey = true
hasPassword = false
canEnter = hasKey or hasPassword
-- Lua は hasKey (true) のみをチェックし、hasPassword を評価することはありませんチートシート
Luaは、andおよびor演算子に対して短絡評価を使用し、最終的な結果が判明した時点で評価を停止します。
and演算子の場合:最初の条件がfalseであれば、2番目の条件は評価されません。
playerAlive = false
hasWeapon = true
canFight = playerAlive and hasWeapon
-- playerAlive (false) のみをチェックし、hasWeapon はスキップしますor演算子の場合:最初の条件がtrueであれば、2番目の条件は評価されません。
hasKey = true
hasPassword = false
canEnter = hasKey or hasPassword
-- hasKey (true) のみをチェックし、hasPassword はスキップします自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。