Menu
Coddy logo textTech

String-Enums als Unions

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

Zahlen machen kryptische Protokolle: Wenn du 2 siehst, sagt dir das wenig, wenn du "down" siehst, sagt dir das alles. Für lesbare Enums sind Luau-literale Union-Typen das geeignete Werkzeug: ein Typ, dessen Mitglieder exakt bestimmte Zeichenfolgen sind:

type Direction = "up" | "down" | "left" | "right"

local facing: Direction = "up"    -- ✓
local typo: Direction = "upp"     -- ✗ Typfehler beim Bearbeiten

Eine mit Direction annotierte Variable kann diese vier Zeichenfolgen und nichts anderes enthalten. Vertippst du dich, erkennt der Prüfer den Fehler sofort: Der Fehler erreicht niemals einen Spieler.

Zur Laufzeit sind die Werte einfache Zeichenfolgen. Gib sie aus, verkette sie, vergleiche sie mit ==. Alles, was du über Zeichenfolgen weißt, gilt auch hier:

print(facing)            -- oben
print(`facing {facing}`) -- facing oben

Vergleiche die beiden Muster, die du jetzt kennst: Die konstante Tabelle erzeugt einen Laufzeitwert (UserRole), der Mitglieder enthält, während die literale Union überhaupt keinen Wert erzeugt. Es gibt keine Direction-Tabelle, sondern nur eine Regel, die der Prüfer dahingehend durchsetzt, welche Zeichenfolgen passen. Beschreibende, selbstdokumentierende Werte ohne jegliche Laufzeitkosten machen literale Unions zum bevorzugten Enum-Stil in Luau-Code.

challenge icon

Aufgabe

Einfach

Erstelle einen Literal-Union-Typ namens Direction mit den Mitgliedern "up", "down", "left" und "right".

Erstelle vier Variablen, die jeweils mit Direction typannotiert sind:

  • upDirection = "up"
  • downDirection = "down"
  • leftDirection = "left"
  • rightDirection = "right"

Gib jeweils in einer eigenen Zeile aus:

  1. upDirection
  2. downDirection
  3. leftDirection
  4. rightDirection
  5. die Nachricht The player moves left, die mithilfe von String-Interpolation aus leftDirection erstellt wurde

Probier es selbst

-- Schreibe den Code hier
-- 1) definiere den Typ Direction als Union der vier String-Literale
-- 2) erstelle die vier annotierten Variablen
-- 3) gib jedes aus, dann die interpolierte Nachricht
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