Menu
CoddyTech

Itérer avec pairs()

Fait partie de la section Logique et déroulement du programme du Journey Lua de Coddy. Leçon 1 sur 54.

Lorsque tu travailles avec des tables de type dictionnaire en Lua, tu dois souvent accéder à chaque paire clé-valeur qu’elles contiennent. La fonction pairs() te permet de le faire en parcourant 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 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 et la quantité de chaque article. La fonction pairs() fonctionne avec tout type de clé, y compris les chaînes de caractères, les nombres ou même d’autres tables.Pour le défi : construire une chaîneLe défi ci-dessous te demande de renvoyer chaque entrée sous forme d’une seule chaîne ; voici donc un rappel de deux outils de manipulation des chaînes vus dans les bases. Tu joins des chaînes avec l’opérateur de concaténation, qui se compose de deux points (..). Par exemple, "Hello" .. " " .. "World" donne "Hello World".Si tu as besoin de formater du texte sur plusieurs lignes, tu peux utiliser le caractère d’échappement de nouvelle ligne "\n". Lorsque Lua rencontre "\n" dans une chaîne, il l’interprète comme une commande lui indiquant de passer à la ligne suivante.Par exemple, print("Line 1\nLine 2") affichera :
Line 1
Line 2
challenge icon

Défi

Facile

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

Utilise pairs() pour parcourir la table d’inventaire et créer 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, utilise le caractère de nouvelle ligne "\n" entre les entrées. Par exemple, "apple: 5\nbanana: 3" s’affichera sur deux lignes distinctes. Veille à ne pas ajouter de "\n" au début, avant le premier article : ajoute-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, leurs quantités (nombres)

Valeur renvoyée : 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 à l’aide de l’opérateur '..'.
    -- Pour ajouter une nouvelle ligne, utilisez le caractère spécial '\n'.
    -- Vous pourriez avoir besoin d’un moyen de savoir si vous ajoutez le premier élément ou un élément suivant
    -- pour décider s’il faut ajouter un saut de 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 déroulement du programme

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