Menu
Coddy logo textTech

Iterieren mit pairs()

Teil des Abschnitts Logic & Flow der Lua-Journey von Coddy — Lektion 1 von 54.

Beim Arbeiten mit Tabellen im Dictionary-Stil in Lua müssen Sie oft auf jedes darin gespeicherte Schlüssel-Wert-Paar zugreifen. Die Funktion pairs() macht dies möglich, indem sie es Ihnen erlaubt, alle Einträge in einer Tabelle zu durchlaufen, unabhängig davon, welchen Typ die Schlüssel haben.

Die Syntax für die Verwendung von pairs() in einer for-Schleife sieht so aus:

for key, value in pairs(myTable) do
    -- Schlüssel und Wert hier verwenden
end

Während jeder Iteration der Schleife liefert pairs() sowohl den Schlüssel als auch den dazugehörigen Wert. Das bedeutet, dass Sie auf beide Informationen gleichzeitig zugreifen und mit ihnen arbeiten können.

Hier ist ein praktisches Beispiel mit dem Inventar eines Spielers:

local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end

Dieser Code gibt jeden Elementnamen und dessen Menge aus. Die pairs()-Funktion arbeitet mit jedem Schlüsseltyp, einschließlich Strings, Zahlen oder sogar anderen Tabellen.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Funktion printInventory, die eine inventory-Tabelle entgegennimmt und einen formatierten String zurückgibt, der alle Artikel und deren Mengen auflistet.

Verwenden Sie pairs(), um durch die inventory-Tabelle zu iterieren und einen String zu erstellen, bei dem jede Zeile einen Artikelnamen gefolgt von seiner Menge im Format item: quantity anzeigt. Jeder Artikel sollte in einer separaten Zeile stehen.

Um jeden Artikel in eine eigene Zeile zu setzen, verwenden Sie das Zeilenumbruchzeichen "\n" zwischen den Einträgen. Zum Beispiel wird "apple: 5\nbanana: 3" als zwei separate Zeilen angezeigt. Achten Sie darauf, nicht ein führendes "\n" vor dem ersten Artikel hinzuzufügen — fügen Sie es nur zwischen den Artikeln hinzu.

Parameter:

  • inventory (table): Eine Tabelle im Dictionary-Stil, bei der die Schlüssel Artikelnamen (Strings) und die Werte Mengen (Zahlen) sind

Rückgabewert: Ein String, bei dem jeder Artikel und jede Menge in einer separaten Zeile stehen, getrennt durch "\n". Beispielausgabe für {apple=5, banana=3}:
apple: 5
banana: 3

Spickzettel

Die Funktion pairs() ermöglicht es Ihnen, alle Schlüssel-Wert-Paare in einer Tabelle im Dictionary-Stil zu durchlaufen:

for key, value in pairs(myTable) do
    -- verwenden Sie hier key und value
end

Bei jeder Iteration liefert pairs() sowohl den Schlüssel als auch den zugehörigen Wert, sodass Sie gleichzeitig auf beide Informationen zugreifen können.

Beispiel mit einer Inventar-Tabelle:

local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end

Die Funktion pairs() funktioniert mit jedem Schlüsseltyp, einschließlich Strings, Zahlen oder sogar anderen Tabellen.

Probier es selbst

function printInventory(inventory)
    -- 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 Logic & Flow