Tabellen durchlaufen
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 17 von 80.
Du hast schon oft Lua-Tabellen durchlaufen: Luau verwendet genau dieselben Schleifen und fügt den Schleifenvariablen Typen hinzu. Bei Arrays durchläuft ipairs die Elemente der Reihe nach, 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, das zu wissen.
Für Maps verwendest du pairs, das jedes Schlüssel-Wert-Paar durchläuft, einschließlich Zeichenfolgen als Schlüssel. Bei einer {[string]: number}-Map sind die Schleifenvariablen natürlich eine 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 Hinweis: pairs durchläuft die Schlüssel im Hash-Teil in keiner garantierten Reihenfolge. Die Reihenfolge kann sich zwischen verschiedenen Durchläufen unterscheiden. Wenn du eine deterministische Ausgabe brauchst (sortierte Berichte, Tests), sammle die Schlüssel in einem Array, sortiere es mit table.sort und durchlaufe dann die sortierten Schlüssel mit ipairs, um die Map zu indizieren.
Aufgabe
EinfachGib eine Woche lang die Temperaturen und ihre Summe aus.
- Deklariere
local temps: {number} = {12, 15, 11, 14}undlocal total = 0. - Durchlaufe die Werte mit
for day: number, temp: number in ipairs(temps) do, gib`Day {day}: {temp}`aus und addieretempzutotal. - Gib nach der Schleife
totalaus.
Klicke auf Run Code: Die Ausgabe zeigt Day 1: 12 bis Day 4: 14 und anschließend 52.
Probier es selbst
-- 1) temps: {number} und total = 0 deklarieren
-- 2) Schleife mit typisiertem day und temp durchlaufen, jeden day ausgeben und zu total addieren
-- 3) total ausgeben
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 Luau4Mit Funktionen arbeiten
Parameter und Rückgabewerte typisierenAnonyme Funktionen typisierenFunktionen ohne RückgabewertOptionale ParameterStandardwerte für ParameterStandardwerte für boolesche WerteFunktionen mit variabler ParameteranzahlFunktionstypen definierenRückblick: typisierte Funktionen7Projekt: Typisierter Aufgabenmanager
Projekt: Die AufgabenstrukturFunktion zum Hinzufügen einer Aufgabe2Grundlegende Typen
Zahl, String und BooleanDer Typ „any“: NotausgangDer Typ „unknown“Nil- und optionale TypenTypinferenz in der PraxisExplizite TypannotationenRückblick: Übung zu grundlegenden Typen5Typ-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 ArraysElemente hinzufügen und auslesenWas ist ein Map-Typ?Maps deklarieren und auf Elemente zugreifenTabellen durchlaufenTabellen mit gemischten FormenEin Raster auslesenEin Raster erstellentable.unpackRückblick: Arrays und MapsÜbe selbstständig: Online-Luau-Compiler