Menu
Coddy logo textTech

Itération sur les tables

Fait partie de la section Introduction à Luau du Journey Lua de Coddy — leçon 17 sur 73.

Vous avez souvent parcouru des tables Lua — Luau conserve exactement les mêmes loops et ajoute des types aux variables de loop. Pour les arrays, ipairs walks les éléments dans l'order, de l'index 1 à #t, et vous pouvez annoter les deux variables :

local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
    print(`Day {day}: {temp}`)
end

Rappelez-vous que ipairs s'arrête au premier index manquant — un trou nil au milieu termine le loop plus tôt. C'est rarement un problème avec des arrays bien entretenus, mais cela vaut la peine de le savoir.

Pour les maps, utilisez pairs, qui visite chaque paire clé/valeur — clés string incluses. Sur une map {[string]: number}, les variables de loop sont naturellement un string et un number :

local ages: {[string]: number} = {Alice = 30, Bob = 25}
for name: string, age: number in pairs(ages) do
    print(`{name} is {age}`)
end

Une mise en garde cruciale : pairs visite les clés de la partie hash dans un order non garanti — cela peut différer d'une exécution à l'autre. Lorsque vous avez besoin d'une sortie déterministe (rapports triés, tests), collectez les clés into un array, triez-le avec table.sort, puis faites un loop sur les clés triées avec ipairs et indexez la map.

challenge icon

Défi

Facile

Créez un array typé temps: {number} initialisé avec 18, 21, 19 et 24.

Parcourez-le en boucle avec ipairs, en annotant les deux variables de la boucle loop (day: number, temp: number). Pour chaque élément, affichez exactement :

Day 1: 18

(en utilisant l'interpolation de chaînes avec des backticks), et ajoutez chaque température à un total cumulé.

after la boucle, affichez le total sur sa propre ligne.

Essayez vous-même

-- Écrivez le code ici
-- 1) déclarer temps: {number} = {18, 21, 19, 24}
-- 2) for day: number, temp: number in ipairs(temps) do ... end
--    imprimer `Day {day}: {temp}` et additionner dans total
-- 3) imprimer le total après la boucle
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 Introduction à Luau