Méthode WithIndex
Fait partie de la section Fondamentaux du Journey Kotlin de Coddy. Leçon 75 sur 93.
Lorsque vous parcourez une liste, vous avez souvent besoin de connaître non seulement l’élément, mais aussi sa position. La méthode withIndex() vous donne les deux à la fois.
Appelez withIndex() sur n’importe quelle liste pour obtenir des paires d’index et de valeur :
val colors = listOf("Red", "Green", "Blue")
for ((index, color) in colors.withIndex()) {
println("$index: $color")
}
// Sortie :
// 0: Red
// 1: Green
// 2: BlueRemarquez la syntaxe entre les parenthèses : (index, color). Cela s’appelle la déstructuration, qui décompose l’index et la valeur en variables distinctes. Vous pouvez nommer ces variables comme bon vous semble pour votre code.
Cette approche est plus propre que de suivre manuellement un index avec une variable compteur. Elle est particulièrement utile lorsque vous devez afficher des listes numérotées ou effectuer différentes actions selon la position :
val tasks = listOf("Wake up", "Exercise", "Eat breakfast")
for ((i, task) in tasks.withIndex()) {
println("Step ${i + 1}: $task")
}
// Sortie :
// Étape 1 : Se réveiller
// Étape 2 : Faire de l'exercice
// Étape 3 : Prendre le petit-déjeunerDéfi
MoyenVous recevrez une liste de noms d’étudiants en entrée. Lisez d’abord le nombre d’étudiants, puis lisez chaque nom.
À l’aide de withIndex(), affichez chaque étudiant avec son numéro de rang (en commençant par 1, et non par 0).
Format d’entrée :
- Première ligne : un entier
nreprésentant le nombre d’étudiants - Les
nlignes suivantes : les noms des étudiants (chaînes de caractères)
Format de sortie :
Affichez chaque étudiant sur une ligne distincte au format suivant :
Rank 1: Alice
Rank 2: Bob
Rank 3: CharlieN’oubliez pas que withIndex() vous fournit des indices commençant à 0 ; vous devrez donc les ajuster pour obtenir des numéros de rang commençant à 1.
Essayez vous-même
fun main() {
// Lire le nombre d'étudiants
val n = readLine()!!.toInt()
// Lire les noms des étudiants dans une liste
val students = mutableListOf<String>()
for (i in 1..n) {
students.add(readLine()!!)
}
// TODO: Écrivez votre code ci-dessous
// Utilisez withIndex() pour parcourir les étudiants et afficher leur rang
// N'oubliez pas : withIndex() donne des indices commençant à 0, mais les rangs doivent commencer à 1
}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 augmentéeOpérateurs de comparaisonRécapitulatif - Mathématiques simples7E/S de base
Fonction PrintlnModèles de chaînesEntrée ReadLineConversion de typeRécapitulatif - Années avant la retraiteRécapitulatif - Vrai ou faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourArguments nommésValeurs par défautFonctions à expression uniqueRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validation13Itérer sur des séquences
Itérer sur les élémentsMéthode WithIndexItérer sur des chaînes P1Itérer sur des chaînes P2Récapitulatif - Lettres indexées2Variables
Val ou VarInférence de typeNombresChaîne de caractèresBooléenConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Opérateurs logiques, partie 3Ternaire avec une expression ifRécapitulatif - Logique simple8Calculateur de partage d’addition
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Aperçu du jeuLa fonction FizzBuzz3Nullabilité
Qu’est-ce que la sécurité vis-à-vis de nullTypes nullableOpérateur d’appel sécuriséOpérateur ElvisBases des défis de fonctionsAssertion de non-nullitéRécapitulatif - Accès sécurisé6Prise de décision
Instruction IfIf - ElseIf comme expressionExpression WhenWhen avec des plagesRécapitulatif - Calculatrice simple9Boucles
Boucle ForBoucle WhileBoucle Do-WhileBreakContinuePlages dans les bouclesBoucle imbriquéeRécapitulatif - FactorielleRécapitulatif - Entrée dynamiqueEntraînez-vous par vous-même : Playground Kotlin