Deklarieren und Zugreifen auf Maps
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 16 von 73.
Das Deklarieren einer typisierten Map sieht genauso aus wie die Tabellenkonstruktoren, die du schon immer geschrieben hast: Die Annotation legt lediglich die Schlüssel- und Werttypen fest:
local stock: {[string]: number} = {apples = 12, bananas = 5}Lesen und Schreiben verwenden die Indexierung, die du bereits kennst. Bei Schlüsseln, die gültige Bezeichner sind, greifen stock.apples und stock["apples"] auf denselben Eintrag zu; die Klammernotation verarbeitet außerdem Schlüssel mit Leerzeichen oder Schlüssel, die in Variablen gespeichert sind:
stock["cherries"] = 20 -- neuen Eintrag hinzufügen
stock.bananas = 8 -- einen bestehenden aktualisieren
print(stock["apples"]) -- 12
print(stock["plums"]) -- nil — nie gesetztDer Typprüfer überwacht jeden Schreibzugriff: stock["apples"] = "many" wird markiert, weil "many" keine Zahl ist, und die Verwendung einer Zahl als Schlüssel wird ebenfalls markiert, weil Schlüssel Zeichenketten sein müssen.
Um einen Eintrag zu löschen, weist du seinem Schlüssel nil zu: stock["bananas"] = nil entfernt ihn vollständig, und spätere Lesezugriffe liefern nil. Es gibt keine separate Löschfunktion; dies ist das standardmäßige Lua-Idioms, und es wird auch bei einer Map weiterhin typgeprüft.
Aufgabe
EinfachErstelle eine typisierte Map stock: {[string]: number}, initialisiert mit apples = 12 und bananas = 5. Dann:
- füge einen neuen Eintrag
cherriesmit dem Wert20hinzu - aktualisiere
bananasauf8
Gib schließlich jeden Wert in einer eigenen Zeile aus:
- den Bestand von
apples - den Bestand von
bananas - den Bestand von
cherries - den Bestand von
plums: ein Schlüssel, den du nie gesetzt hast
Probier es selbst
-- Schreibe hier den Code
-- 1) deklariere stock: {[string]: number} mit apples = 12, bananas = 5
-- 2) füge cherries = 20 hinzu, aktualisiere bananas auf 8
-- 3) gib apples, bananas, cherries, dann plums 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 MapsÜbe selbstständig: Online-Lua-Compiler