Itérer avec ipairs()
Fait partie de la section Logique et flux du Journey Lua de Coddy. Leçon 2 sur 54.
Bien que pairs() fonctionne avec n’importe quelle structure de table, Lua fournit une fonction spécialisée appelée ipairs(), spécialement conçue pour les tables de type liste. Cette fonction parcourt les tables dans l’ordre séquentiel, en commençant à l’index 1 et en continuant jusqu’à ce qu’elle rencontre une valeur nil.
La syntaxe de ipairs() est similaire à celle de pairs() :
for index, value in ipairs(myList) do
-- utilisez index et value ici
endVoici un exemple avec une liste d’objets de quête :
local questItems = {"Map", "Compass", "Torch", "Rope"}
for i, item in ipairs(questItems) do
print(i .. ". " .. item)
endSortie :
1. Map
2. Compass
3. Torch
4. RopeLa principale différence avec pairs() est que ipairs() s’arrête immédiatement lorsqu’elle trouve une valeur nil, même s’il y a d’autres éléments après celle-ci.
Défi
FacileÉcrivez une fonction listTasks qui prend une table tasks et renvoie une chaîne formatée listant toutes les tâches avec leur numéro de position.
Utilisez ipairs() pour parcourir les tâches dans l’ordre séquentiel et construire une chaîne où chaque ligne affiche le numéro de la tâche suivi du nom de la tâche au format number. task. Chaque tâche doit être placée sur une ligne distincte.
Paramètres :
tasks(table) : Une table de type liste contenant les noms des tâches sous forme de chaînes
Renvoie : Une chaîne où chaque tâche est numérotée sur une ligne distincte. Format :
1. task1
2. task2
3. task3Essayez vous-même
function listTasks(tasks)
-- Écrivez le code ici
end
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
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