Tabellen mit gemischten Formen
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 18 von 80.
Arrays enthalten viele Werte eines Typs; Maps enthalten einen Schlüsseltyp und einen Werttyp. Die Lua-Tabellen, die du am häufigsten verwendest, mischen jedoch Typen in benannten Feldern: etwa ein Spieler mit einem Namen vom Typ String, einer Punktzahl vom Typ Zahl und einem Flag vom Typ Boolean. Luau bildet diese mit einer Struktur ab: einem Tabellentyp, der jedes Feld und seinen jeweiligen Typ auflistet.
type Point = {x: number, y: number}
local origin: Point = {x = 0, y = 0}
print(origin.x)Das Schlüsselwort type erstellt einen Typalias: einen wiederverwendbaren Namen für die Struktur. Er existiert nur für den Prüfer: Es wird kein Laufzeitwert namens Point erstellt. Jedes Feld kann 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`)Nachdem die Struktur deklariert wurde, weiß der Prüfer, dass player.score eine Zahl ist, und erkennt Fehler frühzeitig: etwa einen Tippfehler wie player.scroe (dieses Feld gibt es nicht) oder die Zuweisung player.score = "high" (falscher Typ). Das ist ein erster Einblick: Ein späteres Kapitel behandelt Strukturen, optionale Felder und Methoden ausführlicher.
Aufgabe
EinfachBeschreibe einen Spieler mit einem Shape-Typ.
- Schreibe
type Player = {name: string, score: number, active: boolean}. - Erstelle
local player: Player = {name = "Kai", score = 900, active = false}. - Gib
player.activeund dann`{player.name} has {player.score} points`aus.
Drücke „Code ausführen“: Die Ausgabe zeigt false und Kai has 900 points.
Probier es selbst
-- 1) type Player = {...}
-- 2) local player: Player = {...}
-- 3) Gib das active-Flag aus, dann die Zusammenfassungszeile
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