Menu
Coddy logo textTech

Itérer avec ipairs()

Fait partie de la section Logic & Flow du Journey Lua de Coddy — leçon 2 sur 54.

Alors que pairs() fonctionne avec n'importe quelle structure de table, Lua fournit une fonction spécialisée appelée ipairs() spécifiquement conçue pour les tables de type liste. Cette fonction parcourt les tables dans l'ordre séquentiel, en commençant par 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 l'index et la valeur ici
end

Voici 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)
end

Sortie :

1. Map
2. Compass
3. Torch
4. Rope

La différence clé par rapport à pairs() est que ipairs() s'arrête immédiatement lorsqu'il trouve une valeur nil, même s'il y a d'autres éléments après.

challenge icon

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 leurs numéros 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 sur une ligne distincte.

Paramètres :

  • tasks (table) : Une table de type liste contenant les noms des tâches sous forme de chaînes de caractères

Retourne : Une chaîne avec chaque tâche numérotée sur une ligne distincte. Format : 

1. task1
2. task2
3. task3

Aide-mémoire

ipairs() parcourt les tables de type liste dans l'ordre séquentiel, en commençant par l'index 1 et en s'arrêtant à la première valeur nil :

for index, value in ipairs(myList) do
    -- utilisez index et value ici
end

Exemple :

local questItems = {"Map", "Compass", "Torch", "Rope"}

for i, item in ipairs(questItems) do
    print(i .. ". " .. item)
end
-- Sortie :
-- 1. Map
-- 2. Compass
-- 3. Torch
-- 4. Rope

Différence clé : Contrairement à pairs(), ipairs() s'arrête immédiatement lorsqu'il rencontre une valeur nil, même si d'autres éléments existent après.

Essayez vous-même

function listTasks(tasks)
    -- É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