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
endHier 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)
endAusgabe:
1. Map
2. Compass
3. Torch
4. RopeDer wichtigste Unterschied zu pairs() besteht darin, dass ipairs() sofort stoppt, wenn es einen nil-Wert findet, selbst wenn danach noch weitere Elemente vorhanden sind.
Aufgabe
EinfachSchreibe 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. task3Probier es selbst
function listTasks(tasks)
-- Schreibe hier deinen Code
end
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
1Fortgeschrittene Tabelleniteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen2Weitere Funktionen der Tabellenbibliothek
table.concat()Tabellenkonstruktion & unpack()table.sort()Eigene Sortierung mit FunktionenRückblick – Highscore-TabelleÜbe selbstständig: Online-Lua-Compiler