Menu
CoddyTech

Union-Typen

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

Manchmal reicht ein Typ nicht aus. Eine Benutzer-ID kann als "user123" oder als 42 eintreffen. In einfachem Lua würdest du einfach auf das Beste hoffen; Luau bietet dir Vereinigungstypen: Der senkrechte Strich | bedeutet „oder“:

local userId: number | string

userId = "user123"  -- ✓ eine Zeichenkette ist erlaubt
userId = 42          -- ✓ eine Zahl ist erlaubt
userId = true        -- ✗ Typfehler: boolean ist nicht Teil des Union-Typs

Die Variable kann ein beliebiges Element der Vereinigung enthalten, und nur diese. Das ist der entscheidende Unterschied zu any: Eine Vereinigung bleibt streng darin, was erlaubt ist, und bietet dir zugleich die nötige Flexibilität.

Vereinigungen sind besonders nützlich für Funktionsparameter, die mehrere Eingabeformate akzeptieren:

function printId(id: number | string): ()
    print(id)
end

printId(42)          -- funktioniert mit einer Zahl
printId("user123")   -- funktioniert mit einer Zeichenfolge

string? kennst du bereits. Das war deine erste Vereinigung! Es ist einfach eine Kurzform für string | nil. In der nächsten Lektion lernst du, wie du sicher mit einem Vereinigungswert arbeitest, sobald du einen hast.

challenge icon

Aufgabe

Einfach

Akzeptiere einen Wert, der eine Zahl oder eine Zeichenfolge ist.

  1. Schreibe local function printId(id: number | string): (), die id ausgibt.
  2. Deklariere local status: string | number = "active".
  3. Rufe printId(7) und printId("player7") auf, setze dann status = 200 und gib den Wert aus.

Drücke auf Code ausführen: Die Ausgabe zeigt 7, player7 und 200.

Probier es selbst

-- 1) printId(id: number | string): ()
-- 2) local status: string | number = "active"
-- 3) Rufe printId(7) und printId("player7") auf, setze status auf 200 und gib ihn aus

Alle Lektionen in Einführung in Luau

Übe selbstständig: Online-Luau-Compiler