Union-Typen
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 31 von 73.
Manchmal reicht ein einziger Typ nicht aus. Eine User-ID könnte als "user123" oder als 42 ankommen. In reinem Lua würde man einfach das Beste hoffen; Luau bietet dir Union-Typen — der Pipe-Operator | wird als „oder“ gelesen:
local userId: number | string
userId = "user123" -- ✓ ein String ist erlaubt
userId = 42 -- ✓ eine Number ist erlaubt
userId = true -- ✗ Typfehler: boolean ist nicht in der UnionDie Variable kann jedes Mitglied der Union enthalten — und nur diese. Das ist der entscheidende Unterschied zu any: Eine Union bleibt streng bezüglich dessen, was erlaubt ist, bietet dir aber die nötige Flexibilität.
Unions sind besonders nützlich für Funktionseingabeparameter, die mehrere Eingabeformate akzeptieren:
function printId(id: number | string): ()
print(id)
end
printId(42) -- funktioniert mit einer Zahl
printId("user123") -- funktioniert mit einem StringDu kennst bereits string? — das war deine erste Union! Es ist einfach eine Kurzschreibweise für string | nil. In der nächsten Lektion lernst du, wie du sicher mit einem Union-Wert arbeitest, sobald du einen hast.
Aufgabe
EinfachErstelle eine Funktion namens printId, die id: number | string entgegennimmt und diese ausgibt — expliziter Rückgabetyp ().
Deklariere eine Variable status vom Typ string | number, initialisiert mit "<code>active".
Danach in folgender Reihenfolge:
- Rufe
printId(42)auf - Rufe
printId("<code>user123") auf - Gib
statusaus - Weise
statusden Wert200neu zu und gib ihn erneut aus
Insgesamt vier Zeilen Ausgabe.
Probier es selbst
-- Schreibe hier Code
-- printId(id: number | string): ()
-- local status: string | number = der genaue Text aus den Anweisungen
-- rufe printId(42) auf, printId(der genaue Text aus den Anweisungen),
-- status ausgeben, auf 200 neu zuweisen, erneut ausgeben
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
1Erste Schritte mit Luau
Was ist Luau?Warum Luau nutzen?Dein erster Luau-CodeTypprüfung & FehlermodiZusammenfassung: Einführung in Luau4Arbeiten mit Funktionen
Typisierung von Parametern & RückgabewertenTypisierung von anonymen FunktionenFunktionen ohne RückgabewertOptionale ParameterStandard-ParameterwerteVariadische FunktionenDefinieren von FunktionstypenZusammenfassung: Typisierte Funktionen2Grundtypen
Grundlegende Typen: num, str, boolDer Typ 'any': Der AuswegDer Typ 'unknown'Nil- & optionale TypenTypinferenz in der PraxisExplizite TypannotationenZusammenfassung: Praxis zu Grundtypen5Typ-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 ArraysHinzufügen und Lesen von ElementenWas ist ein Map-Typ?Deklarieren und Zugreifen auf MapsIterieren von TabellenGemischt-strukturierte TabellenMehrdimensionale typisierte Arraystable.unpack und VarargsZusammenfassung: Arrays und MapsÜbe selbstständig: Online-Lua-Compiler