Menu
Coddy logo textTech

Das Enum-Pattern in Luau

Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 51 von 73.

Programme sind voller Werte aus einer kleinen, festgelegten Menge: Eine Bestellung ist ausstehend, versendet oder zugestellt; ein Spieler blickt nach oben, nach unten, nach links oder nach rechts. Viele Sprachen haben dafür ein enum-Schlüsselwort. Luau nicht, und es braucht auch keines, weil zwei Werkzeuge, die du bereits kennst, diese Aufgabe abdecken.

Muster 1: die Konstantentabelle. Eine einfache Tabelle ordnet aussagekräftigen Namen Werte zu und ersetzt „magische Zahlen“, die im Code verstreut sind:

local Status = {
    Pending = 1,
    Active = 2,
    Done = 3,
}

print(Status.Active) -- 2

Das ist ein echter Laufzeitwert: Du kannst Status.Active auslesen, damit vergleichen und ihn weitergeben, genau wie bei den Tabellen, die du bisher verwendet hast.

Muster 2: die Literalkombination. Ein Typ, der aus exakten Zeichenkettenwerten besteht und die Literaltypen verwendet, die du im Kapitel über Kombinationen kennengelernt hast:

type Color = "red" | "green" | "blue"
local favorite: Color = "green" -- ✓
local oops: Color = "yellow"    -- ✗ type error

Die Kombination existiert nur für den Prüfer und verursacht keine Laufzeitkosten, garantiert aber, dass eine Variable nichts außerhalb dieser Menge enthalten kann. Die beiden Muster ergänzen einander: Die Tabelle liefert dir Laufzeit-werte unter einem Namen; die Kombination liefert dir eine Garantie zur Kompilierzeit. Später in diesem Kapitel lernst du außerdem table.freeze kennen, das eine Konstantentabelle davor schützt, zur Laufzeit verändert zu werden.

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 Einführung in Luau

Übe selbstständig: Online-Lua-Compiler