Iterieren mit pairs()
Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 1 von 54.
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
endpairs() 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)
endpairs() 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 2Aufgabe
EinfachSchreibe 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: 5banana: 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
endDiese 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