Menu
CoddyTech

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 Blocks

Der 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" aus

Jeder 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.

challenge icon

Aufgabe

Einfach

Erstelle 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 playerLevel heißt, mit dem Wert 25
  • 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 hier
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