Inline-Shape-Annotationen
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 39 von 80.
In Lua verwendest du Tabellen schon lange als Datensätze: local user = {name = "Ana", age = 20}. Nichts hindert dich daran, ein Feld falsch zu schreiben, eines zu vergessen oder eine Zeichenkette dort zu speichern, wo eine Zahl hingehört. Das erfährst du erst, wenn der Code ausgeführt wird.
Mit Luau kannst du die Struktur einer solchen Tabelle direkt in der Deklaration beschreiben, indem du jedes Feld und seinen Typ in geschweiften Klammern auflistest:
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Vergleiche das mit den Tabellentypen, die du bereits kennst: {number} beschreibt ein Array und {[string]: number} beschreibt eine Map mit beliebigen Zeichenketten als Schlüsseln. Eine Struktur ist präziser. Sie benennt jedes Feld einzeln und weist jedem Feld einen eigenen Typ zu.
Sobald die Struktur deklariert ist, überprüft der Typprüfer die Tabelle während der Bearbeitung anhand dieser Struktur. Ein fehlendes Feld oder ein Wert mit falschem Typ wird markiert, bevor der Code überhaupt ausgeführt wird:
local user: {name: string, age: number} = {
name = "Ana",
age = "twenty", -- ✗ Typfehler: string ist keine number
}Wie immer fügt die Annotation kein Laufzeitverhalten hinzu: Die Tabelle ist eine gewöhnliche Lua-Tabelle. Inline-Strukturen eignen sich perfekt für einmalige Strukturen, die du nicht wiederverwenden möchtest; in der nächsten Lektion gibst du Strukturen einen Namen.
Aufgabe
EinfachBeschreibe einen Schülerdatensatz direkt bei seiner Deklaration.
- Deklariere
local student: {name: string, studentId: number} = {name = "Sarah Johnson", studentId = 12345}. - Gib zuerst
student.nameund dannstudent.studentIdaus.
Drücke auf „Code ausführen“: Die Ausgabe zeigt Sarah Johnson und 12345.
Probier es selbst
-- 1) deklariere student mit einer Inline-Shape-Annotation
-- 2) gib zuerst seinen Namen und dann seine studentId 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 Maps6Typisieren von Tabellen-Shapes
Inline-Shape-AnnotationenTyp-Aliase für ShapesOptionale EigenschaftenShapes vs. lose TabellenShapes erweiternMethoden zu Shapes hinzufügenSelf und Methoden mit DoppelpunktZusammenfassung: Definieren von Tabellen-ShapesÜbe selbstständig: Online-Luau-Compiler