Itérer avec pairs()
Fait partie de la section Logique et flux du Journey Lua de Coddy. Leçon 1 sur 54.
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
endpairs() 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)
endpairs() 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 2Dé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: 5banana: 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
endCette 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
1Itération avancée des tables
Itérer avec pairs()Itérer avec ipairs()pairs() contre ipairs()Récapitulatif - Fiche de personnage2Fonctions supplémentaires de la bibliothèque table
table.concat()construction de tables et unpack()table.sort()Tri personnalisé avec des fonctionsRécapitulatif - Tableau des meilleurs scores3Concepts avancés des fonctions
Retourner plusieurs valeursFonctions variadiques (...)Les fonctions comme valeurs de première classeFonctions anonymesQu’est-ce qu’une fermeture ?Récapitulatif - Gestionnaire d’événements simpleEntraînez-vous par vous-même : Compilateur Lua en ligne