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}`)
endRappelez-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}`)
endUne 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.
Défi
FacileCré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
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
1Premiers pas avec Luau
Qu'est-ce que Luau ?Pourquoi utiliser Luau ?Votre premier code LuauVérification de type et modes d'erreurRécapitulatif : Introduction à Luau4Travailler avec les fonctions
Typage des paramètres et valeurs de retourTypage des fonctions anonymesFonctions ne retournant rienParamètres optionnelsValeurs par défaut des paramètresFonctions variadiquesDéfinition des types de fonctionsRécapitulatif : Fonctions typées2Types fondamentaux
Types de base : num, str, boolLe type 'any' : la porte de sortieLe type 'unknown'Types Nil et optionnelsL'inférence de type en actionAnnotations explicites de typeRécapitulatif : Pratique des types fondamentaux5Alias, unions et intersections
Alias de types pour les types primitifsTypes unionsTravailler avec les types unionsTypes littérauxTypes intersectionsCombinaison d'alias de typesRécapitulatif : Combinaisons de types avancées3Tables typées : Tableaux et Maps
Tableaux typésAjout et lecture d'élémentsQu'est-ce qu'un type Map ?Déclaration et accès aux MapsItération sur les tablesTables à formes mixtesTableaux typés multidimensionnelstable.unpack et VarargsRécapitulatif : Tableaux et Maps