Menu
Coddy logo textTech

Gültigkeitsbereich und Blöcke

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

In Lua können Sie überall in Ihrem Code neue Gültigkeitsbereiche (Scopes) erstellen, indem Sie do...end-Blöcke verwenden. Diese Blöcke ermöglichen es Ihnen, genau zu steuern, wo auf Ihre lokalen Variablen zugegriffen werden kann, was Ihnen eine präzise Kontrolle über den Gültigkeitsbereich von Variablen gibt.

So können Sie einen neuen Gültigkeitsbereich mit einem do...end-Block 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)  -- Dies würde einen Fehler verursachen!

Der leistungsstarke Aspekt des Gültigkeitsbereichs (Scope) ist, dass man lokale Variablen mit demselben Namen in verschiedenen Blöcken haben kann und diese völlig getrennt bleiben:

local name = "Alice"

do
    local name = "Bob"  -- Unterschiedliche Variable!
    print(name)  -- Gibt "Bob" aus
end

print(name)  -- Gibt "Alice" aus

Jeder do...end-Block erzeugt seine eigene isolierte Umgebung für lokale Variablen. Variablen, die innerhalb eines Blocks deklariert werden, können nicht in den äußeren Gültigkeitsbereich entweichen, während auf Variablen aus äußeren Gültigkeitsbereichen von innerhalb innerer Blöcke zugegriffen werden kann.

challenge icon

Aufgabe

Einfach

Erstellen Sie verschachtelte do...end-Blöcke, um zu demonstrieren, wie lokale Variablen mit demselben Namen in verschiedenen Gültigkeitsbereichen (Scopes) völlig getrennt bleiben.

Erstellen Sie zuerst eine lokale Variable namens playerLevel mit dem Wert 10 im äußeren Gültigkeitsbereich und geben Sie diese aus.

Erstellen Sie dann einen do...end-Block und darin:

  • Deklarieren Sie eine neue lokale Variable, die ebenfalls playerLevel heißt, mit dem Wert 25
  • Geben Sie dieses innere playerLevel aus

Nachdem der innere Block endet, geben Sie das äußere playerLevel erneut aus, um zu zeigen, dass es unverändert geblieben ist.

Dies zeigt, dass lokale Variablen mit identischen Namen in verschiedenen Gültigkeitsbereichen völlig unabhängig 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