Iterieren von Tabellen
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy — Lektion 17 von 73.
Sie sind schon oft über Lua-Tabellen iteriert — Luau behält genau dieselben Schleifen bei und fügt Typen zu den Schleifenvariablen hinzu. Für Arrays durchläuft ipairs die Elemente in der Reihenfolge, von Index 1 bis #t, und Sie können beide Variablen annotieren:
local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
print(`Day {day}: {temp}`)
endDenken Sie daran, dass ipairs beim ersten fehlenden Index anhält — ein nil-Loch in der Mitte beendet die Schleife vorzeitig. Bei gut gepflegten Arrays ist das selten ein Problem, aber gut zu wissen.
Verwenden Sie für Maps pairs, das jedes Schlüssel/Wert-Paar besucht — einschließlich String-Schlüsseln. Bei einer {[string]: number}-Map sind die Schleifenvariablen natürlicherweise 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 besucht Hash-Teil-Schlüssel in keiner garantierten Reihenfolge — dies kann sich zwischen Ausführungen unterscheiden. Wenn Sie eine deterministische Ausgabe benötigen (sortierte Berichte, Tests), sammeln Sie die Schlüssel in einem Array, sortieren Sie es mit table.sort, iterieren Sie dann mit ipairs über die sortierten Schlüssel und indizieren Sie die Map.
Aufgabe
EinfachErstelle ein typisiertes Array temps: {number}, initialisiert mit 18, 21, 19 und 24.
Iteriere mit ipairs darüber und annotiere beide Schleifenvariablen (day: number, temp: number). Gib für jedes Element genau 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 Gesamtsumme in einer eigenen Zeile aus.
Probier es selbst
-- Schreibe den Code hier
-- 1) deklariere temps: {number} = {18, 21, 19, 24}
-- 2) for day: number, temp: number in ipairs(temps) do ... end
-- gib `Day {day}: {temp}` aus und summiere in total
-- 3) gib total nach der Schleife 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