Itération sur les tables
Fait partie de la section Introduction à Luau du Journey Lua de Coddy. Leçon 17 sur 73.
Vous avez déjà parcouru des tables Lua de nombreuses fois : Luau conserve exactement les mêmes boucles et ajoute des types aux variables de la boucle. Pour les tableaux, ipairs parcourt les éléments dans l'ordre, de l'index 1 jusqu'à #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}`)
endN'oubliez pas que ipairs s'arrête au premier index manquant : un trou nil au milieu met fin à la boucle prématurément. C'est rarement un problème avec des tableaux bien entretenus, mais c'est utile à savoir.
Pour les maps, utilisez pairs, qui parcourt chaque paire clé/valeur : y compris les clés de type string. Dans une map {[string]: number}, les variables de la boucle sont naturellement une 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 réserve cruciale : pairs parcourt les clés de la partie de hachage dans un ordre non garanti. Celui-ci peut différer d'une exécution à l'autre. Lorsque vous avez besoin d'une sortie déterministe (rapports triés, tests), rassemblez les clés dans un tableau, appliquez table.sort, puis parcourez les clés triées avec ipairs et utilisez-les pour indexer la map.
Défi
FacileCrée un tableau typé temps: {number} initialisé avec 18, 21, 19 et 24.
Parcours-le avec ipairs en annotant les deux variables de boucle (day: number, temp: number). Pour chaque élément, affiche exactement :
Day 1: 18(en utilisant l’interpolation de chaînes avec des accents graves), et ajoute chaque température à un total cumulé.
Après la boucle, affiche 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 MapsEntraînez-vous par vous-même : Compilateur Lua en ligne