Iterieren mit ipairs()
Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 2 von 54.
Während pairs() mit jeder Tabellenstruktur funktioniert, stellt Lua eine spezielle Funktion namens ipairs() bereit, die speziell für Tabellen im Listenstil entwickelt wurde. Diese Funktion durchläuft Tabellen in sequenzieller Reihenfolge, beginnend bei Index 1 und fährt fort, bis sie auf einen nil-Wert trifft.
Die Syntax für ipairs() ähnelt der von pairs():
for index, value in ipairs(myList) do
-- verwende index und value hier
endHier ist ein Beispiel mit einer Liste von Quest-Gegenstä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 entscheidende Unterschied zu pairs() besteht darin, dass ipairs() sofort anhält, wenn es einen nil-Wert findet, selbst wenn danach noch weitere Elemente vorhanden sind.
Aufgabe
EinfachSchreibe eine Funktion listTasks, die eine tasks-Tabelle entgegennimmt und eine formatierte Zeichenkette zurückgibt, in der alle Aufgaben mit ihren Positionsnummern aufgelistet sind.
Verwende ipairs(), um die Aufgaben in sequenzieller Reihenfolge zu durchlaufen, und erstelle eine Zeichenkette, in der jede Zeile die Aufgabennummer gefolgt vom Aufgabennamen im Format number. task enthält. Jede Aufgabe sollte in einer eigenen Zeile stehen.
Parameter:
tasks(Tabelle): Eine Tabelle im Listenstil, die Aufgabennamen als Zeichenketten enthält
Rückgabe: Eine Zeichenkette, in der jede Aufgabe in einer eigenen Zeile nummeriert ist. Format:
1. task1
2. task2
3. task3Probier es selbst
function listTasks(tasks)
-- Schreibe hier den 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 & 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