Metodo WithIndex
Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 75 di 93.
Quando iteri su una lista, spesso devi conoscere non solo l’elemento, ma anche la sua posizione. Il metodo withIndex() ti fornisce entrambi in una volta sola.
Chiama withIndex() su qualsiasi lista per ottenere coppie di indice e valore:
val colors = listOf("Red", "Green", "Blue")
for ((index, color) in colors.withIndex()) {
println("$index: $color")
}
// Output:
// 0: Red
// 1: Green
// 2: BlueNota la sintassi all'interno delle parentesi: (index, color). Questa tecnica si chiama destrutturazione e assegna l'indice e il valore a variabili separate. Puoi dare a queste variabili i nomi più adatti al tuo codice.
Questo approccio è più pulito che tenere traccia manualmente di un indice con una variabile contatore. È particolarmente utile quando devi visualizzare elenchi numerati o eseguire azioni diverse in base alla posizione:
val tasks = listOf("Wake up", "Exercise", "Eat breakfast")
for ((i, task) in tasks.withIndex()) {
println("Step ${i + 1}: $task")
}
// Output:
// Step 1: Wake up
// Step 2: Exercise
// Step 3: Eat breakfastSfida
MedioRiceverai in input un elenco di nomi di studenti. Leggi prima il numero di studenti, poi leggi ogni nome.
Usando withIndex(), stampa ogni studente con il relativo numero in classifica (a partire da 1, non da 0).
Formato dell'input:
- Prima riga: un intero
nche rappresenta il numero di studenti - Le successive
nrighe: nomi degli studenti (stringhe)
Formato dell'output:
Stampa ogni studente su una riga separata nel formato:
Rank 1: Alice
Rank 2: Bob
Rank 3: CharlieRicorda che withIndex() fornisce indici a partire da 0, quindi dovrai adeguarli affinché i numeri in classifica partano da 1.
Provalo tu
fun main() {
// Leggi il numero di studenti
val n = readLine()!!.toInt()
// Leggi i nomi degli studenti in una lista
val students = mutableListOf<String>()
for (i in 1..n) {
students.add(readLine()!!)
}
// TODO: Scrivi il tuo codice qui sotto
// Usa withIndex() per scorrere students e stampare la posizione in classifica di ciascuno
// Ricorda: withIndex() fornisce indici a partire da 0, ma le posizioni in classifica devono partire da 1
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaOperatori di confrontoRipasso: matematica semplice7Input/output di base
Funzione printlnTemplate di stringheInput con readLineConversione di tipoRiepilogo - Anni alla pensioneRiepilogo - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori di ritornoArgomenti denominatiValori predefinitiFunzioni a espressione singolaRiepilogo - Funzione SigmaRiepilogo - Funzione di validazione13Iterare sulle sequenze
Iterare sugli elementiMetodo WithIndexIterare sulle stringhe P1Iterare sulle stringhe P2Riepilogo - Lettere indicizzate2Variabili
Val vs VarInferenza del tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Operatori logici Parte 3Ternario con espressione ifRipasso - Logica semplice8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con un tocco
Panoramica del giocoLa funzione FizzBuzz3Nullabilità
Cos'è la null safetyTipi nullableOperatore di chiamata sicuraOperatore ElvisBasi della sfida sulle funzioniAsserzione non-nullRiepilogo - Accesso sicuro6Prendere decisioni
Istruzione ifIf-elseIf come espressioneEspressione whenwhen con intervalliRiepilogo - Calcolatrice semplice9Cicli
Ciclo forCiclo whileCiclo do-whilebreakcontinueIntervalli nei cicliCiclo annidatoRipasso - fattorialeRipasso - input dinamicoEsercitati da solo: Playground Kotlin