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 aus wie die Tabellenkonstruktoren, die Sie schon immer geschrieben haben — die Annotation legt lediglich die Schlüssel- und Werttypen fest:
local stock: {[string]: number} = {apples = 12, bananas = 5}Lesen und Schreiben nutzen die Indizierung, die Sie bereits kennen. Für Schlüssel, die gültige Bezeichner sind, greifen stock.apples und stock["apples"] auf denselben Eintrag zu; die Klammerform verarbeitet auch Schlüssel mit Leerzeichen oder solche, die in Variablen gespeichert sind:
stock["cherries"] = 20 -- füge einen neuen Eintrag hinzu
stock.bananas = 8 -- aktualisiere einen bestehenden
print(stock["apples"]) -- 12
print(stock["plums"]) -- nil — nie gesetztDer Type-Checker überwacht jeden Schreibvorgang: stock["apples"] = "many" wird gemeldet, weil "many" keine Zahl ist, und die Verwendung einer Zahl als Schlüssel wird gemeldet, weil Schlüssel Strings sein müssen.
Um einen Eintrag zu löschen, weisen Sie 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 Standard-Lua-Idiom, und es besteht nach wie vor die Typprüfung für eine `map`.
Aufgabe
EinfachErstelle eine typed map stock: {[string]: number}, die mit apples = 12 und bananas = 5 initialisiert ist. Danach:
- Füge eine neue
entrycherriesmit dem Wert20hinzu (add) - Aktualisiere (
update)bananasauf8
Drucke (print) schlussendlich, jeweils in einer eigenen Zeile:
- den Bestand von
apples - den Bestand von
bananas - den Bestand von
cherries - den Bestand von
plums— einkey, den dunevergesetzt hast
Probier es selbst
-- Schreibe Code hier
-- 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