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.