Menu
Coddy logo textTech

Iterieren mit pairs()

Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 1 von 54.

Bei der Arbeit mit tabellenartigen Dictionaries in Lua musst du oft auf jedes darin gespeicherte Schlüssel-Wert-Paar zugreifen. Die Funktion pairs() macht dies möglich, indem sie dir erlaubt, alle Einträge in einer Tabelle zu durchlaufen, unabhängig davon, welchen Typ die Schlüssel haben.Die Syntax zur Verwendung von pairs() in einer for-Schleife sieht so aus:
for key, value in pairs(myTable) do
    -- verwende key und value hier
end
Während jeder Iteration der Schleife stellt pairs() sowohl den key als auch den entsprechenden Wert bereit. Das bedeutet, dass du gleichzeitig auf beide Informationen zugreifen und mit ihnen arbeiten kannst.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 Artikelnamen und seine Menge aus. Die Funktion pairs() funktioniert mit jedem Schlüsseltyp, einschließlich Zeichenketten, Zahlen oder sogar anderen Tabellen.Arbeiten mit ZeichenfolgenIn Lua kannst du Zeichenketten mithilfe des Verkettungsoperators zusammenfügen, der aus zwei Punkten (..) besteht. Zum Beispiel ergibt "Hello" .. " " .. "World" "Hello World".Wenn du Text über mehrere Zeilen hinweg formatieren musst, kannst du das Escape-Zeichen für einen Zeilenumbruch "\n" verwenden. Wenn Lua "\n" innerhalb einer Zeichenkette vorfindet, behandelt es dies als Anweisung, in die nächste Zeile zu wechseln.Zum Beispiel gibt print("Line 1\nLine 2") Folgendes aus:
Line 1
Line 2
challenge icon

Aufgabe

Einfach

Schreibe eine Funktion printInventory, die eine inventory-Tabelle entgegennimmt und eine formatierte Zeichenkette zurückgibt, in der alle Artikel und ihre Mengen aufgelistet sind.

Verwende pairs(), um die Inventartabelle zu durchlaufen und eine Zeichenkette zu erstellen, in der jede Zeile einen Artikelnamen gefolgt von seiner Menge im Format item: quantity enthält. Jeder Artikel sollte in einer eigenen Zeile stehen.

Um jeden Artikel in einer eigenen Zeile zu platzieren, verwende das Zeilenumbruchzeichen "\n" zwischen den Einträgen. Zum Beispiel wird "apple: 5\nbanana: 3" als zwei separate Zeilen angezeigt. Achte darauf, keinen führenden "\n" vor dem ersten Artikel hinzuzufügen: Füge es nur zwischen den Artikeln ein.

Parameter:

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

Rückgabe: Eine Zeichenkette mit jedem Artikel und seiner Menge in einer eigenen Zeile, getrennt durch "\n". Beispielausgabe für {apple=5, banana=3}:
apple: 5
banana: 3

Probier es selbst

function printInventory(inventory)
    -- Um die Ausgabe zu formatieren, kannst du Zeichenketten mit dem '..'-Operator verketten.
    -- Um eine neue Zeile hinzuzufügen, verwende das Sonderzeichen '\n'.
    -- Du brauchst möglicherweise eine Möglichkeit zu verfolgen, ob du das erste Element oder ein nachfolgendes hinzufügst
    -- um zu entscheiden, ob vor dem Element ein Zeilenumbruch hinzugefügt werden soll.
    
    -- Schreibe den Code hier
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