Gemischt-strukturierte Tabellen
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy — Lektion 18 von 73.
Arrays enthalten viele Werte eines Typs; Maps enthalten einen Schlüsseltyp und einen Werttyp. Aber die am häufigsten verwendeten Lua-Tabellen mischen Typen unter benannten Feldern — ein Spieler mit einem Namens-string, einer number als Punktzahl, einem boolean-Flag. Luau typisiert diese mit einer shape: ein Tabellentyp, der jedes field und seinen eigenen type auflistet.
type Point = {x: number, y: number}
local origin: Point = {x = 0, y = 0}
print(origin.x)Das Schlüsselwort type erstellt einen Type Alias — einen wiederverwendbaren Namen für die Shape. Er existiert nur für den Checker: Es wird kein Laufzeitwert namens Point erstellt. Die Felder können jeweils einen anderen Typ haben:
type Player = {name: string, score: number, active: boolean}
local player: Player = {name = "Rio", score = 1500, active = true}
print(`{player.name} has {player.score} points`)Mit der deklarierten Shape weiß der Checker, dass player.score eine number ist, und meldet Fehler frühzeitig: ein Tippfehler wie player.scroe (kein solches Feld) oder die Zuweisung player.score = "high" (falscher Typ). Dies ist der erste Vorgeschmack — ein späteres Kapitel geht noch viel tiefer auf Shapes, optionale Felder und Methoden ein.
Aufgabe
EinfachDefiniere einen Typ-Alias Player für eine Shape mit drei Feldern: name: string, score: number und active: boolean.
Erstelle local player: Player mit dem Namen "Rio", Score 1500 und active gesetzt auf true.
Gib Folgendes jeweils in einer eigenen Zeile aus:
- den Namen des Players
- den Score des Players
- das Active-Flag des Players
- die exakte Zeile
Rio has 1500 points, erstellt mittels String-Interpolation aus den Feldern
Probier es selbst
-- Schreibe Code hier
-- 1) type Player = {name: string, score: number, active: boolean}
-- 2) create player: Player = {name = "Rio", score = 1500, active = true}
-- 3) print name, score, active, dann die interpolierte Zusammenfassungszeile
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