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-TypsDie 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 Zeichenfolgestring? 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.
Aufgabe
EinfachAkzeptiere einen Wert, der eine Zahl oder eine Zeichenfolge ist.
- Schreibe
local function printId(id: number | string): (), dieidausgibt. - Deklariere
local status: string | number = "active". - Rufe
printId(7)undprintId("player7")auf, setze dannstatus = 200und 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
1Erste Schritte mit Luau
Was ist Luau?Warum Luau nutzen?Dein erster Luau-CodeTypprüfung & FehlermodiZusammenfassung: Einführung in Luau4Mit Funktionen arbeiten
Parameter und Rückgabewerte typisierenAnonyme Funktionen typisierenFunktionen ohne RückgabewertOptionale ParameterStandardwerte für ParameterStandardwerte für boolesche WerteFunktionen mit variabler ParameteranzahlFunktionstypen definierenRückblick: typisierte Funktionen7Projekt: Typisierter Aufgabenmanager
Projekt: Die AufgabenstrukturFunktion zum Hinzufügen einer Aufgabe2Grundlegende Typen
Zahl, String und BooleanDer Typ „any“: NotausgangDer Typ „unknown“Nil- und optionale TypenTypinferenz in der PraxisExplizite TypannotationenRückblick: Übung zu grundlegenden Typen5Typ-Aliase, Union-Typen und Schnittmengen-Typen
Typ-Aliase für PrimitivenUnion-TypenArbeiten mit Union-TypenLiterale TypenSchnittmengen-Typen (Intersection Types)Kombination von Typ-AliasenZusammenfassung: Fortgeschrittene Typ-Kombinationen3Typisierte Tabellen: Arrays & Maps
Typisierte ArraysElemente hinzufügen und auslesenWas ist ein Map-Typ?Maps deklarieren und auf Elemente zugreifenTabellen durchlaufenTabellen mit gemischten FormenEin Raster auslesenEin Raster erstellentable.unpackRückblick: Arrays und MapsÜbe selbstständig: Online-Luau-Compiler