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 erzeugen kryptische Logs: 2 zu sehen sagt Ihnen wenig, "down" zu sehen sagt Ihnen alles. Für lesbare Enums sind Luau's literal union types das Werkzeug — ein Typ, dessen Elemente exakte Strings sind:

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

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

Eine Variable, die mit Direction typprüfend annotiert ist, kann diese vier Strings enthalten und sonst nichts. Tippen Sie einen falsch, erfasst der Typprüfer dies sofort — der Fehler erreicht nie einen Spieler.

Zur Laufzeit (runtime) sind die Werte einfache Strings. Geben Sie sie aus, verknüpfen Sie sie oder vergleichen Sie sie mit == — alles, was Sie über Strings wissen, gilt hier:

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

Vergleichen Sie die beiden Muster, die Sie nun kennen: Die Konstanten-Tabelle erstellt einen Laufzeitwert (UserRole), der Elemente enthält, während die Literal-Union überhaupt keinen Wert erstellt — es gibt keine Direction-Tabelle, sondern nur eine Regel, die der Prüfer darüber durchsetzt, welche Strings passen. Beschreibende, selbstdokumentierende Werte ohne Laufzeitkosten machen Literal-Unions zum bevorzugten Enum-Stil in Luau-Code.

challenge icon

Aufgabe

Einfach

Erstelle einen Literal Union Type namens Direction mit den Elementen "up", "down", "left" und "right".

Erstelle vier Variablen, die jeweils mit Direction typisiert sind:

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

Gib jeweils in einer eigenen Zeile Folgendes aus:

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

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