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 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
endpairs() 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)
enditem 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 2Dé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: 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() vs. ipairs()Récapitulatif - Fiche de personnage2Plus de fonctions de la bibliothèque table
table.concat()Construction de table & unpack()table.sort()Tri personnalisé avec des fonctionsRécapitulatif - Tableau des scores3Concepts avancés sur les fonctions
Retourner plusieurs valeursFonctions variadiques (...)Les fonctions comme valeurs de première classeFonctions anonymesQu'est-ce qu'une closure ?Récapitulatif - Gestionnaire d'événements simple