Avatar ·

Comment créer une plage (range) en Kotlin qui compte en ordre inverse (du plus grand au plus petit) ?

Bonjour, collègues ! J'ai récemment commencé à apprendre Kotlin et j'ai rencontré un problème en travaillant avec les plages (ranges). Je dois parcourir les nombres de 10 à 1 dans une boucle for, c'est-à-dire en ordre inverse. J'ai essayé d'écrire ceci : ```kotlin for (i in 10..1) { println(i) } ``` Mais ce code n'affiche rien ! Je m'attendais à voir les nombres 10, 9, 8... 1, mais la boucle ne s'exécute tout simplement pas. J'ai lu la documentation et j'ai compris que `10..1` crée une plage vide, car le pas par défaut est +1, et la valeur de départ est plus grande que la valeur de fin. J'ai essayé d'utiliser `downTo` : ```kotlin for (i in 10 downTo 1) { println(i) } ``` Cela a fonctionné ! Mais j'ai plusieurs questions : 1. Pourquoi `10..1` ne fonctionne-t-il pas, alors que `10 downTo 1` fonctionne ? 2. Puis-je créer une variable de plage qui stocke une séquence inverse, afin de l'utiliser plusieurs fois ? 3. Existe-t-il d'autres moyens de faire un parcours inverse, par exemple avec `reversed()` ou `step` ? Expliquez-moi, s'il vous plaît, comment cela fonctionne correctement.