Menu
Coddy logo textTech

Iterieren mit pairs()

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

Wenn du mit Dictionary-artigen Tabellen in Lua arbeitest, musst du oft auf jedes darin gespeicherte Schlüssel-Wert-Paar zugreifen. Die Funktion pairs() macht dies möglich, indem sie dir erlaubt, durch alle Einträge einer Tabelle zu iterieren, unabhängig davon, welchen Typ die Schlüssel haben.Die Syntax für die Verwendung von pairs() in einer for-Schleife sieht wie folgt aus:
for key, value in pairs(myTable) do
    -- verwende key und value hier
end
Bei jedem Durchlauf der Schleife liefert pairs() sowohl den Schlüssel als auch seinen zugehö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 Namen eines item und seine quantity aus. Die pairs()-Funktion funktioniert mit jedem Schlüsseltyp, einschließlich strings, Zahlen oder sogar anderen Tabellen.Arbeiten mit StringsIn Lua können Sie Zeichenketten mit dem Verkettungsoperator zusammenfügen, der aus zwei Punkten (..) besteht. Zum Beispiel ergibt "Hello" .. " " .. "World" den Wert "Hello World".Wenn Sie Text über mehrere Zeilen hinweg formatieren müssen, können Sie das Zeilenumbruch-Escape-Zeichen "\n" verwenden. Wenn Lua auf "\n" innerhalb eines Strings stößt, behandelt es dies als Befehl, zur nächsten Zeile zu wechseln.Zum Beispiel erzeugt print("Line 1\nLine 2") folgende Ausgabe:
Line 1
Line 2
challenge icon

Aufgabe

Einfach

Schreibe eine Funktion printInventory, die eine inventory-Tabelle entgegennimmt und einen formatierten String zurückgibt, der alle Elemente und ihre Mengen auflistet.

Verwende pairs(), um durch die inventory-Tabelle zu iterieren und einen String zu erstellen, in dem jede Zeile einen Elementnamen gefolgt von seiner Menge im Format item: quantity anzeigt. Jedes Element sollte in einer eigenen Zeile stehen.

Um jedes Element in eine eigene Zeile zu setzen, verwende das Newline-Zeichen "\n" zwischen den Einträgen. Zum Beispiel wird "apple: 5\nbanana: 3" als zwei separate Zeilen angezeigt. Achte darauf, kein führendes "\n" vor dem ersten Element hinzuzufügen — füge es nur zwischen den Elementen ein.

Parameter:

  • inventory (Tabelle): Eine Dictionary-ähnliche Tabelle, bei der die Schlüssel Elementnamen (Strings) und die Werte Mengen (Zahlen) sind

Rückgabe: Ein String, bei dem jedes Element und jede Menge in einer separaten Zeile stehen, getrennt durch "\n". Beispiel-Ausgabe für {apple=5, banana=3}:
apple: 5
banana: 3

Probier es selbst

function printInventory(inventory)
    -- Um die Ausgabe zu formatieren, kannst du Strings 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 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