Menu
CoddyTech

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}`)
end

Beachte, 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}`)
end

Ein 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.

challenge icon

Aufgabe

Einfach

Gib eine Woche lang die Temperaturen und ihre Summe aus.

  1. Deklariere local temps: {number} = {12, 15, 11, 14} und local total = 0.
  2. Durchlaufe die Werte mit for day: number, temp: number in ipairs(temps) do, gib `Day {day}: {temp}` aus und addiere temp zu total.
  3. Gib nach der Schleife total aus.

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

Übe selbstständig: Online-Luau-Compiler