Método WithIndex
Parte de la sección Fundamentos del Journey de Kotlin de Coddy. Lección 75 de 93.
Al iterar sobre una lista, a menudo necesitas conocer no solo el elemento, sino también su posición. El método withIndex() te proporciona ambos a la vez.
Llama a withIndex() en cualquier lista para obtener pares de índice y valor:
val colors = listOf("Red", "Green", "Blue")
for ((index, color) in colors.withIndex()) {
println("$index: $color")
}
// Salida:
// 0: Red
// 1: Green
// 2: BlueObserva la sintaxis dentro de los paréntesis: (index, color). Esto se llama desestructuración, que desempaqueta el índice y el valor en variables separadas. Puedes nombrar estas variables como tenga sentido para tu código.
Este enfoque es más limpio que realizar un seguimiento manual de un índice con una variable contador. Es especialmente útil cuando necesitas mostrar listas numeradas o realizar diferentes acciones según la posición:
val tasks = listOf("Wake up", "Exercise", "Eat breakfast")
for ((i, task) in tasks.withIndex()) {
println("Step ${i + 1}: $task")
}
// Salida:
// Step 1: Wake up
// Step 2: Exercise
// Step 3: Eat breakfastDesafío
IntermedioRecibirás una lista de nombres de estudiantes como entrada. Lee primero el número de estudiantes y después lee cada nombre.
Usando withIndex(), imprime cada estudiante con su número de puesto (empezando desde 1, no desde 0).
Formato de entrada:
- Primera línea: un entero
nque representa el número de estudiantes - Siguientes
nlíneas: nombres de estudiantes (cadenas)
Formato de salida:
Imprime cada estudiante en una línea separada con el formato:
Rank 1: Alice
Rank 2: Bob
Rank 3: CharlieRecuerda que withIndex() te proporciona índices que empiezan desde 0, por lo que tendrás que ajustarlos para que los números de puesto empiecen desde 1.
Pruébalo tú mismo
fun main() {
// Lee el número de estudiantes
val n = readLine()!!.toInt()
// Lee los nombres de los estudiantes en una lista
val students = mutableListOf<String>()
for (i in 1..n) {
students.add(readLine()!!)
}
// TODO: Escribe tu código debajo
// Usa withIndex() para iterar a través de los estudiantes e imprimir su rango
// Recuerda: withIndex() da índices empezando desde 0, pero los rangos deben empezar desde 1
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosOperador móduloAsignación aumentadaOperadores de comparaciónRepaso: matemáticas simples7Entrada y salida básicas
Función PrintlnPlantillas de cadenasEntrada con ReadLineConversión de tiposRepaso - Años hasta la jubilaciónRepaso - Verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoArgumentos con nombreValores predeterminadosFunciones de una sola expresiónRepaso - Función SigmaRepaso - Función de validación13Iterar sobre secuencias
Iterar sobre elementosMétodo WithIndexIterar sobre cadenas P1Iterar sobre cadenas P2Repaso: letras indexadas2Variables
Val frente a VarInferencia de tiposNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Operadores lógicos Parte 3Ternario con expresión ifRepaso: lógica simple8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtención de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Nullabilidad
Qué es la seguridad frente a valores nulosTipos anulablesOperador de llamada seguraOperador ElvisConceptos básicos de retos de funcionesAfirmación de no nulidadRepaso: acceso seguro6Toma de decisiones
Sentencia ifIf - ElseIf como expresiónExpresión whenWhen con rangosRepaso - Calculadora simple9Bucles
Bucle ForBucle WhileBucle Do-WhileBreakContinueRangos en buclesBucle anidadoRepaso - FactorialRepaso - Entrada dinámicaPractica por tu cuenta: Playground de Kotlin