Iterieren von Tabellen
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 17 von 73.
Du hast schon oft über Lua-Tabellen iteriert: Luau verwendet genau dieselben Schleifen und fügt den Schleifenvariablen Typen hinzu. Bei Arrays durchläuft ipairs die Elemente in der Reihenfolge von Index 1 bis #t, und du kannst beide Variablen annotieren:
local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
print(`Day {day}: {temp}`)
endBeachte, dass ipairs beim ersten fehlenden Index stoppt: Eine nil-Lücke in der Mitte beendet die Schleife vorzeitig. Bei sorgfältig gepflegten Arrays ist das selten ein Problem, aber es ist gut, davon zu wissen.
Für Maps verwendest du pairs, das jedes Schlüssel/Wert-Paar durchläuft, einschließlich der Schlüssel vom Typ String. Bei einer {[string]: number}-Map sind die Schleifenvariablen ganz natürlich ein string und eine number:
local ages: {[string]: number} = {Alice = 30, Bob = 25}
for name: string, age: number in pairs(ages) do
print(`{name} is {age}`)
endEin wichtiger Vorbehalt: pairs durchläuft die Schlüssel des Hash-Teils in nicht garantierter Reihenfolge. Diese kann sich zwischen den Ausführungen unterscheiden. Wenn du eine deterministische Ausgabe benötigst (sortierte Berichte, Tests), sammle die Schlüssel in einem Array, sortiere es mit table.sort und durchlaufe anschließend die sortierten Schlüssel mit ipairs, um auf die Map zuzugreifen.
Aufgabe
EinfachErstelle ein typisiertes Array temps: {number}, initialisiert mit 18, 21, 19 und 24.
Durchlaufe es mit ipairs und annotiere beide Schleifenvariablen (day: number, temp: number). Gib für jedes Element exakt Folgendes aus:
Day 1: 18(unter Verwendung von String-Interpolation mit Backticks) und addiere jede Temperatur zu einer laufenden Summe.
Gib nach der Schleife die Summe in einer eigenen Zeile aus.
Probier es selbst
-- Schreibe hier den Code
-- 1) deklariere temps: {number} = {18, 21, 19, 24}
-- 2) for day: number, temp: number in ipairs(temps) do ... end
-- drucke `Day {day}: {temp}` und summiere in total
-- 3) drucke total nach der Schleife
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