Menu
Coddy logo textTech

Itérer avec pairs()

Fait partie de la section Logique et flux du Journey Lua de Coddy — leçon 1 sur 54.

Lorsque vous travaillez avec des tables de type dictionnaire en Lua, vous avez souvent besoin d'accéder à chaque paire clé-valeur stockée à l'intérieur. La fonction pairs() rend cela possible en vous permettant de parcourir toutes les entrées d'une table, quel que soit le type des clés.La syntaxe pour utiliser pairs() dans une boucle for ressemble à ceci :
for key, value in pairs(myTable) do
    -- utilisez key et value ici
end
À chaque itération de la boucle, pairs() fournit à la fois la clé et sa valeur correspondante. Cela signifie que vous pouvez accéder et travailler avec ces deux informations en même temps.Voici un exemple pratique avec l'inventaire d'un joueur :
local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end
Ce code affichera le nom de chaque item et sa quantity. La fonction pairs() fonctionne avec n'importe quel type de key, y compris les strings, les nombres ou même d'autres tables.Travailler avec des chaînes de caractères (strings)En Lua, vous pouvez assembler des chaînes de caractères en utilisant l'opérateur de concaténation, qui consiste en deux points (..). Par exemple, "Hello" .. " " .. "World" donne "Hello World".Si vous avez besoin de formater du texte sur plusieurs lignes, vous pouvez utiliser le caractère d'échappement de nouvelle ligne, "\n". Lorsque Lua rencontre "\n" à l'intérieur d'une chaîne, il le traite comme une commande pour passer à la ligne suivante.Par exemple, print("Line 1\nLine 2") affichera :
Line 1
Line 2
challenge icon

Défi

Facile

Écrivez une function printInventory qui prend une table inventory et renvoie une chaîne formatée listant tous les items et leurs quantités.

Utilisez pairs() pour parcourir la table inventory et construire une chaîne où chaque line affiche un nom d'item suivi de sa quantity au format item: quantity. Chaque item doit être sur une line séparée.

Pour placer chaque item sur sa propre line, utilisez le character de nouvelle ligne "\n" entre les entrées. Par exemple, "apple: 5\nbanana: 3" s'affichera sur deux lines séparées. Faites attention à ne pas ajouter de "\n" au début before le premier item — ajoutez-le seulement entre les items.

Paramètres :

  • inventory (table) : Une table de type dictionnaire où les clés sont des noms d'items (strings) et les valeurs sont des quantités (nombres)

Renvoie : Une chaîne avec chaque item et quantity sur une line séparée, séparés par "\n". Exemple d'output pour {apple=5, banana=3} :
apple: 5
banana: 3

Essayez vous-même

function printInventory(inventory)
    -- Pour formater la sortie, vous pouvez concaténer des chaînes en utilisant l'opérateur '..'.
    -- Pour ajouter une nouvelle ligne, utilisez le caractère spécial '\n'.
    -- Vous pourriez avoir besoin d'un moyen de suivre si vous ajoutez le premier élément ou un élément suivant
    -- pour décider s'il faut ajouter une nouvelle ligne avant l'élément.
    
    -- Écrivez le code ici
end
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et flux