Inline-Shape-Annotationen
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 37 von 73.
In Lua verwendest du Tabellen schon seit Langem als Datensätze: local user = {name = "Ana", age = 20}. Nichts hindert dich daran, dich beim Feldnamen zu vertippen, ein Feld zu vergessen oder dort, wo eine Zahl hingehört, eine Zeichenkette zu speichern. Du erfährst davon erst, wenn der Code ausgeführt wird.
Luau ermöglicht es dir, die Struktur einer solchen Tabelle direkt in der Deklaration zu 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 genauer. Sie benennt jedes Feld einzeln und gibt jedem Feld seinen eigenen Typ.
Sobald die Struktur deklariert ist, überprüft der Typprüfer die Tabelle während der Bearbeitung anhand dieser Struktur. Ein fehlendes Feld oder ein falscher Werttyp 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 wirst du den Strukturen einen Namen geben.
Aufgabe
EinfachErstelle eine Variable namens student mit einer Inline-Formannotation, die Folgendes deklariert:
namevom TypstringstudentIdvom TypnumberisEnrolledvom Typboolean
Initialisiere sie mit dem Namen "Sarah Johnson", der studentId 12345 und isEnrolled true.
Erstelle eine zweite Variable namens course mit einer Inline-Formannotation, die Folgendes deklariert:
titlevom Typstringcreditsvom Typnumberinstructorvom Typstring
Initialisiere sie mit dem Titel "Introduction to Luau", den Credits 3 und dem Dozenten "Dr. Smith".
Gib jeweils in einer eigenen Zeile Folgendes aus:
- den Namen des Studenten
- die ID des Studenten
- den Kurstitel
- die Anzahl der Credits
Probier es selbst
-- Schreibe hier den Code
-- 1) deklariere student mit einer Inline-Shape-Annotation
-- 2) deklariere course mit einer Inline-Shape-Annotation
-- 3) gib die vier angeforderten Felder aus
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 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-Lua-Compiler