Menu
CoddyTech

Kurzschlussauswertung

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

Wenn Lua die Operatoren and und or auswertet, verwendet es eine Regel namens kurzschlussartige Auswertung. Das bedeutet, dass Lua die Auswertung beendet, sobald das Endergebnis feststeht, und dabei möglicherweise Teile des Ausdrucks vollständig überspringt.

Beim and-Operator weiß Lua sofort, dass der gesamte Ausdruck false ergibt, wenn die erste Bedingung false ist, ohne die zweite Bedingung zu prüfen:

playerAlive = false
hasWeapon = true

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

Ähnlich weiß Lua beim Operator or, 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) und wertet hasPassword nie aus

Die Kurzschlussauswertung spart nicht nur Arbeit: Sie entscheidet, welcher Code ausgeführt wird. Hier ist die zweite Prüfung nur deshalb sicher, weil Lua sie überspringt, wenn lives nil ist:

lives = nil  -- noch kein Wert

canPlay = lives ~= nil and lives > 0
print(canPlay)  -- false

Ohne Kurzschlussauswertung würde lives > 0 das Programm mit einem Fehler beenden, weil nil nicht mit einer Zahl verglichen werden kann. Das wirst du oft verwenden: Prüfe, ob ein Wert vorhanden ist, bevor du ihn verwendest.

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 Grundlagen

Übe selbstständig: Online-Lua-Compiler