Menu
Coddy logo textTech

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
end

Hier 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)
end

Ausgabe:

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

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

challenge icon

Aufgabe

Einfach

Schreibe 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. task3

Probier es selbst

function listTasks(tasks)
    -- Schreibe hier den 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 & Programmablauf

Übe selbstständig: Online-Lua-Compiler