Menu
Coddy logo textTech

Short-Circuit Evaluation

Teil des Abschnitts Fundamentals der Lua-Journey von Coddy — Lektion 23 von 90.

Bei den Operatoren and und or verwendet es eine geschickte Optimierung namens Kurzschlussauswertung. Das bedeutet, dass Lua die Auswertung abbricht, sobald das Endergebnis feststeht, wodurch Teile des Ausdrucks potenziell vollständig übersprungen werden.

Für den and-Operator gilt: Wenn die erste Bedingung false ist, weiß Lua sofort, dass der gesamte Ausdruck false sein wird, ohne die zweite Bedingung zu prüfen:

playerAlive = false
hasWeapon = true

canFight = playerAlive and hasWeapon
-- Lua prüft nur playerAlive (false) und wertet hasWeapon niemals aus

Ähnlich weiß Lua beim or-Operator, wenn die erste Bedingung true ist, dass das Ergebnis true sein wird, und überspringt die zweite Bedingung:

hasKey = true
hasPassword = false

canEnter = hasKey or hasPassword
-- Lua prüft nur hasKey (true), wertet hasPassword nie aus

Spickzettel

Lua verwendet die Kurzschlussauswertung (short-circuit evaluation) für die Operatoren and und or und bricht die Auswertung ab, sobald das Endergebnis feststeht.

Für den and-Operator: Wenn die erste Bedingung false ist, wird die zweite Bedingung niemals ausgewertet:

playerAlive = false
hasWeapon = true

canFight = playerAlive and hasWeapon
-- Überprüft nur playerAlive (false), überspringt hasWeapon

Für den or-Operator: Wenn die erste Bedingung true ist, wird die zweite Bedingung niemals ausgewertet:

hasKey = true
hasPassword = false

canEnter = hasKey or hasPassword
-- Überprüft nur hasKey (true), überspringt hasPassword

Probier es selbst

Diese Lektion enthält keine Programmieraufgabe.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Fundamentals