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 devez souvent accéder à chaque paire key-value qui y est stockée. La fonction pairs() rend cela possible en vous permettant de parcourir toutes les entrées d’une table, quel que soit le type des key.La syntaxe permettant d’utiliser pairs() dans une boucle for se présente ainsi :
for key, value in pairs(myTable) do
    -- utilisez key et value ici
end
À chaque itération de la boucle, pairs() fournit à la fois la key et la valeur correspondante. Cela signifie que tu peux accéder aux deux informations et les utiliser 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 élément et sa quantité. La fonction pairs() fonctionne avec tout type de clé, notamment les chaînes, les nombres ou même d’autres tables.Travailler avec les chaînesEn Lua, vous pouvez joindre des chaînes à l’aide de l’opérateur de concaténation, qui se compose de deux points (..). Par exemple, "Hello" .. " " .. "World" donne "Hello World".Si vous devez mettre en forme 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 l’interprète comme une commande pour passer à la ligne suivante.Par exemple, print("Line 1\nLine 2") produira :
Line 1
Line 2
challenge icon

Défi

Facile

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

Utilisez pairs() pour parcourir la table d’inventaire et construire une chaîne où chaque ligne affiche le nom d’un article suivi de sa quantité au format item: quantity. Chaque article doit se trouver sur une ligne distincte.

Pour placer chaque article sur sa propre ligne, utilisez le caractère de nouvelle ligne "\n" entre les entrées. Par exemple, "apple: 5\nbanana: 3" s’affichera sur deux lignes distinctes. Faites attention à ne pas ajouter de "\n" au début avant le premier article : ajoutez-le uniquement entre les articles.

Paramètres :

  • inventory (table) : Une table de type dictionnaire dont les clés sont les noms des articles (chaînes) et les valeurs sont les quantités (nombres)

Renvoie : Une chaîne contenant chaque article et sa quantité sur une ligne distincte, séparés par "\n". Exemple de résultat 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

Entraînez-vous par vous-même : Compilateur Lua en ligne