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 ausSpickzettel
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 hasWeaponFü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 hasPasswordProbier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Fundamentals
4Operatoren 2: Vergleichs- & Logikoperatoren
GleichheitsoperatorenVergleichsoperatorenDer 'and'-OperatorDer 'or'-OperatorDer 'not'-OperatorShort-Circuit EvaluationTruthy- und Falsy-WerteZusammenfassung – Einfache Logik7Grundlagen der bedingten Logik
Die if-then-AnweisungDie if-then-else-AnweisungDie elseif-AnweisungZusammenfassung – Schatzkiste10Tabellen Teil 1: Listen-Stil
Was ist eine Tabelle?Eine Tabelle erstellenZugriff auf Elemente per IndexElemente per Index ändernDer Längenoperator '#'table.insert()table.remove()Zusammenfassung - Gruppenmitglieder verwalten13Projekt: Einfacher Zaubertrank-Laden
Projekt-SetupEinen Trank hinzufügen2Variablen und Datentypen
Was ist eine Variable?ZahlenStringsBooleansDer Wert 'nil'Die type()-FunktionNamenskonventionenZusammenfassung - Charakterprofil5Grundlegende Ausgabe
Literale ausgebenVariablen ausgebenMehrere Werte ausgebenStrings & Variablen kombinierenDie tostring() FunktionEingabeCastWiederholung - StatusberichtWiederholung - Bis 1208Grundlagen der String-Manipulation
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Wiederholung - Benutzernamen formatieren11Tabellen 2: Dictionary-Stil
Schlüssel-Wert-PaareDictionary-Stil Tabellen erstellenZugriff – KlammerschreibweiseZugriff mit PunktnotationPaare hinzufügen und ändernPaare mit nil entfernenWiederholung – Elementeigenschaften14Gültigkeitsbereich von Variablen
Globale VariablenLokale VariablenWarum lokale Variablen verwenden?Gültigkeitsbereich und BlöckeRückblick – Scope-Rätsel3Operatoren 1 Arithmetik & Verkettung
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorString-VerkettungOperatorrangfolgeRückblick - Einfache Berechnungen6Projekt: Charakter-Stats Anzeige
WillkommensnachrichtCharakter-Stats deklarieren9Grundlagen der Funktionen
Eine Funktion deklarierenEine Funktion aufrufenFunktionen mit ParameternFunktionen mit mehreren ParameternDie 'return'-AnweisungZusammenfassung - Flächenrechner12Schleifen-Grundlagen
Die while-SchleifeDie repeat-until-SchleifeDie numerische for-Schleifefor-Schleife mit SchrittweiteDie 'break'-AnweisungZusammenfassung - Countdown15Abschluss-Herausforderungen
Wiederholung – SpielerzugWiederholung – Einfache DatenbankWiederholung – Summe gerader Zahlen