Gültigkeitsbereich und Blöcke
Teil des Abschnitts Grundlagen der Lua-Journey von Coddy. Lektion 86 von 90.
In Lua kannst du überall in deinem Code mithilfe von do...end-Blöcken neue Gültigkeitsbereiche erstellen. Mit diesen Blöcken kannst du genau festlegen, wo auf deine lokalen Variablen zugegriffen werden kann, und so den Gültigkeitsbereich der Variablen präzise steuern.
So kannst du mit einem do...end-Block einen neuen Gültigkeitsbereich erstellen:
local outerVar = "I'm outside"
do
local innerVar = "I'm inside"
print(outerVar) -- Das funktioniert
print(innerVar) -- Das funktioniert auch
end
print(outerVar) -- Das funktioniert
print(innerVar) -- Gibt nil aus: innerVar existiert nur innerhalb des BlocksDer entscheidende Vorteil von Gültigkeitsbereichen ist, dass du lokale Variablen mit demselben Namen in verschiedenen Blöcken haben kannst und sie vollständig getrennt bleiben:
local name = "Alice"
do
local name = "Bob" -- Andere Variable!
print(name) -- Gibt "Bob" aus
end
print(name) -- Gibt "Alice" ausJeder do...end-Block schafft eine eigene, abgeschottete Umgebung für lokale Variablen. Variablen, die innerhalb eines Blocks deklariert werden, können nicht in den äußeren Gültigkeitsbereich gelangen, während auf Variablen aus äußeren Gültigkeitsbereichen innerhalb innerer Blöcke zugegriffen werden kann.
Aufgabe
EinfachErstelle verschachtelte do...end-Blöcke, um zu zeigen, dass lokale Variablen mit demselben Namen in verschiedenen Gültigkeitsbereichen vollständig getrennt bleiben.
Erstelle zunächst im äußeren Gültigkeitsbereich eine lokale Variable namens playerLevel mit dem Wert 10 und gib sie aus.
Erstelle dann einen do...end-Block und darin:
- Deklariere eine neue lokale Variable, die ebenfalls
playerLevelheißt, mit dem Wert25 - Gib diese innere
playerLevel-Variable aus
Gib nach dem Ende des inneren Blocks erneut die äußere playerLevel-Variable aus, um zu zeigen, dass sie unverändert geblieben ist.
Dies zeigt, dass lokale Variablen mit identischen Namen in verschiedenen Gültigkeitsbereichen vollständig unabhängig voneinander sind – die innere Variable beeinflusst die äußere nicht.
Probier es selbst
-- TODO: Schreibe deinen Code hierDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren 2: Vergleichs- und logische Operatoren
GleichheitsoperatorenVergleichsoperatorenDer 'and'-OperatorDer 'or'-OperatorDer 'not'-OperatorKurzschlussauswertungTruthy- und Falsy-WerteRückblick – Einfache Logik7Grundlegende bedingte Logik
Die if-then-AnweisungDie if-then-else-AnweisungDie elseif-AnweisungWiederholung – Schatztruhe2Variablen und Datentypen
Was ist eine Variable?ZahlenZeichenkettenBoolesche WerteDer Wert „nil“Die Funktion type()NamenskonventionenRückblick – Charakterprofil5Grundlegende Ausgabe
Literale ausgebenVariablen ausgebenMehrere Werte ausgebenStrings & Variablen kombinierenDie tostring()-FunktionEingabeTypumwandlungRückblick – StatusberichtRückblick – Bis 1208Grundlagen der String-Manipulation
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Rückblick – Benutzernamen formatieren11Tabellen 2: Wörterbuchstil
Schlüssel-Wert-PaareTabellen im Wörterbuchstil erstellenZugriff – KlammernotationZugriff mit PunktnotationPaare hinzufügen und ändernPaare mit nil entfernenRückblick – Eigenschaften von Elementen14Variablenbereich
Globale VariablenLokale VariablenWarum lokale Variablen verwenden?Gültigkeitsbereich und BlöckeRückblick – Rätsel zum Gültigkeitsbereich3Operatoren 1: Arithmetik & Verkettung
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorVerkettung von ZeichenkettenRangfolge der OperatorenWiederholung – Einfache Berechnungen6Projekt: Charakterwerte anzeigen
WillkommensnachrichtCharakterwerte deklarieren9Grundlagen von Funktionen
Eine Funktion deklarierenEine Funktion aufrufenFunktionen mit ParameternFunktionen mit mehreren ParameternDie Anweisung „return“Zusammenfassung – Flächenrechner12Grundlagen der Schleifen
Die while-SchleifeDie repeat-until-SchleifeDie numerische for-Schleifefor-Schleife mit SchrittweiteDie Anweisung „break“Rückblick – Countdown15Abschließende Herausforderungen
Wiederholung – SpielzugWiederholung – Einfache DatenbankWiederholung – Summe gerader ZahlenÜbe selbstständig: Online-Lua-Compiler