Menu
Coddy logo textTech

Itérer avec pairs()

Fait partie de la section Logic & Flow 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 aux deux informations et les manipuler 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 article et sa quantité. La fonction pairs() fonctionne avec n'importe quel type de clé, y compris les chaînes de caractères, les nombres ou même d'autres tables.

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 inventory 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 être sur une ligne séparée.

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. Veillez à ne pas ajouter de "\n" initial avant le premier article — ajoutez-le uniquement entre les articles.

Paramètres :

  • inventory (table) : Une table de type dictionnaire où les clés sont des noms d'articles (chaînes de caractères) et les valeurs sont des quantités (nombres)

Retourne : Une chaîne avec chaque article et sa quantité sur une ligne séparée, séparés par "\n". Exemple de sortie pour {apple=5, banana=3} :
apple: 5
banana: 3

Aide-mémoire

La fonction pairs() vous permet de parcourir toutes les paires clé-valeur d'une table de type dictionnaire :

for key, value in pairs(myTable) do
    -- utilisez key et value ici
end

Lors de chaque itération, pairs() fournit à la fois la clé et sa valeur correspondante, vous permettant d'accéder aux deux informations simultanément.

Exemple avec une table d'inventaire :

local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end

La fonction pairs() fonctionne avec n'importe quel type de clé, y compris les chaînes de caractères, les nombres ou même d'autres tables.

Essayez vous-même

function printInventory(inventory)
    -- É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 Logic & Flow