La méthode d'énumération
Fait partie de la section Fondamentaux du Journey Swift de Coddy — leçon 70 sur 86.
Parfois, lors de l'itération sur un tableau, vous avez besoin de connaître non seulement l'élément, mais aussi sa position. Bien que vous puissiez suivre manuellement l'index avec une variable de compteur, Swift propose une solution plus propre : la méthode enumerated().
Lorsque vous appelez enumerated() sur un tableau, cela retourne une séquence de tuples, où chaque tuple contient l'index et l'élément :
let colors = ["Red", "Green", "Blue"]
for (index, color) in colors.enumerated() {
print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: BlueRemarquez comment nous décomposons chaque tuple directement dans la boucle en utilisant (index, color). Cela nous donne accès aux deux valeurs sans aucun code supplémentaire.
Ceci est particulièrement utile lorsque vous devez afficher des listes numérotées ou effectuer des opérations qui dépendent de la position d'un élément :
let tasks = ["Wake up", "Exercise", "Eat breakfast"]
for (index, task) in tasks.enumerated() {
print("Task \(index + 1): \(task)")
}
// Tâche 1 : Wake up
// Tâche 2 : Exercise
// Tâche 3 : Eat breakfastLa méthode enumerated() garde votre code propre et lisible par rapport à la gestion manuelle d'une variable de compteur distincte.
Défi
FacileÉcrivez une fonction formatWithPositions qui prend items et retourne une chaîne formatée affichant chaque élément avec son numéro de position.
Utilisez la méthode enumerated() pour parcourir le tableau et construire une chaîne où chaque élément est préfixé par son numéro de position (commençant à 1).
Logique :
- Parcourez le tableau en utilisant
enumerated() - Pour chaque élément, créez une chaîne au format
"position. item"(en utilisant une numérotation commençant à 1) - Joignez toutes les chaînes formatées avec un caractère de nouvelle ligne (
\n)
Paramètres :
items([String]) : Un tableau de chaînes de caractères à formater
Retourne : Une seule chaîne avec chaque élément sur sa propre ligne, préfixé par son numéro de position (String). Format : "1. item1\n2. item2\n3. item3"
Exemple : Si items est ["Apple", "Banana", "Cherry"], la fonction doit retourner :
"1. Apple\n2. Banana\n3. Cherry"Note : Si le tableau est vide, retournez une chaîne vide "".
Aide-mémoire
La méthode enumerated() retourne une séquence de tuples contenant à la fois l'index et l'élément d'un tableau :
let colors = ["Red", "Green", "Blue"]
for (index, color) in colors.enumerated() {
print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: BlueChaque tuple est décomposé directement dans la boucle en utilisant la syntaxe (index, element), offrant un accès à la fois à la position et à la valeur.
Ceci est utile pour créer des listes numérotées en ajoutant 1 à l'index basé sur zéro :
let tasks = ["Wake up", "Exercise", "Eat breakfast"]
for (index, task) in tasks.enumerated() {
print("Task \(index + 1): \(task)")
}
// Task 1: Wake up
// Task 2: Exercise
// Task 3: Eat breakfastEssayez vous-même
func formatWithPositions(items: [String]) -> String {
// Écrivez le code ici
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur ModuloAffectation composéeRécapitulatif - Mathématiques simplesOpérateurs de comparaison7Entrées/Sorties de base
Fonction PrintInterpolation de chaînesSaisie ReadLineConversion de typesRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourÉtiquettes d'argumentRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs par défaut13Itération sur les séquences
Itérer sur les élémentsLa méthode d'énumérationItérer sur les chaînes P1Itérer sur les chaînes P22Variables
Let vs VarAnnotations de typeNombresStringsBooléensConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateur ternaire8Calculateur de partage de facture
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz3Les Optionnels
Comprendre les optionnelsDéballage avec If LetL'instruction Guard LetOpérateur de fusion nilRécapitulatif - Déballage sécurisé6Prise de décision
L'instruction IfIf - ElseRécapitulatif - Calculatrice simpleL'instruction SwitchSwitch avec des intervalles9Boucles
Boucle For-InBoucle WhileBoucle Repeat-WhileBreakContinueRécapitulatif - FactorielleIntervalles dans les bouclesBoucles imbriquéesRécapitulatif - Entrée dynamique