Menu
CoddyTech

Iterieren mit ipairs()

Teil des Abschnitts Logik und Programmablauf der Lua-Journey von Coddy. Lektion 2 von 54.

Während pairs() mit jeder Tabellenstruktur funktioniert, bietet Lua eine spezialisierte Funktion namens ipairs(), die speziell für Tabellen im Listenstil entwickelt wurde. Diese Funktion durchläuft Tabellen der Reihe nach, beginnend bei Index 1 und fährt fort, bis sie auf einen nil-Wert trifft.

Die Syntax für ipairs() ist ähnlich wie die von pairs():

for index, value in ipairs(myList) do
    -- index und value hier verwenden
end

Hier ist ein Beispiel mit einer Liste von Questgegenständen:

local questItems = {"Map", "Compass", "Torch", "Rope"}

for i, item in ipairs(questItems) do
    print(i .. ". " .. item)
end

Ausgabe:

1. Map
2. Compass
3. Torch
4. Rope

Der wichtigste Unterschied zu pairs() besteht darin, dass ipairs() sofort stoppt, wenn es einen nil-Wert findet, selbst wenn danach noch weitere Elemente vorhanden sind.

challenge icon

Aufgabe

Einfach

Schreibe eine Funktion listTasks, die eine Tabelle tasks entgegennimmt und einen formatierten String zurückgibt, der alle Aufgaben mit ihren Positionsnummern auflistet.

Verwende ipairs(), um die Aufgaben der Reihe nach zu durchlaufen und einen String zu erstellen, in dem jede Zeile die Aufgabennummer gefolgt vom Aufgabennamen im Format number. task enthält. Jede Aufgabe sollte in einer separaten Zeile stehen.

Parameter:

  • tasks (Tabelle): Eine listenartige Tabelle mit Aufgabennamen als Strings

Rückgabewert: Ein String mit jeder Aufgabe in einer separaten Zeile nummeriert. Format: 

1. task1
2. task2
3. task3

Probier es selbst

function listTasks(tasks)
    -- Schreibe hier deinen Code
end
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik und Programmablauf

Übe selbstständig: Online-Lua-Compiler