Avatar ·

Cómo crear un rango (range) en Kotlin que cuente en orden inverso (de mayor a menor)

¡Hola, colegas! Recientemente comencé a estudiar Kotlin y me encontré con un problema al trabajar con rangos (ranges). Necesito iterar números del 10 al 1 en un bucle for, es decir, en orden inverso. Intenté escribir así: ```kotlin for (i in 10..1) { println(i) } ``` ¡Pero este código no imprime nada! Esperaba ver los números 10, 9, 8... 1, pero el bucle simplemente no se ejecuta. Leí la documentación y entendí que `10..1` crea un rango vacío, porque el paso predeterminado es +1, y el valor inicial es mayor que el final. Probé usando `downTo`: ```kotlin for (i in 10 downTo 1) { println(i) } ``` ¡Esto funcionó! Pero tengo varias preguntas: 1. ¿Por qué `10..1` no funciona, pero `10 downTo 1` sí? 2. ¿Se puede crear una variable de rango que almacene la secuencia inversa para usarla varias veces? 3. ¿Hay otras formas de hacer la iteración inversa, por ejemplo, mediante `reversed()` o `step`? Expliquen, por favor, cómo funciona correctamente.