Que signifie `return@` en Kotlin et comment utiliser correctement les étiquettes de retour ?
Bonjour à tous ! J'apprends Kotlin et je suis tombé sur une construction étrange `return@`. Je la vois dans du code avec RxJava, mais je ne comprends pas à quoi elle sert.\n\nJ'ai ce code :\n\n```kotlin\nfun main() {\n listOf(1, 2, 3, 4, 5).forEach {\n if (it == 3) {\n return@forEach\n }\n println(it)\n }\n println("Prêt")\n}\n```\n\nJe m'attendais à ce que `return` sorte simplement de forEach, mais il sort de toute la fonction main. Sans `@forEach`, le code ne compile même pas avec l'erreur "return is not allowed here". Pourquoi ?\n\nJ'ai aussi vu cet exemple avec RxJava :\n\n```kotlin\nobservable.subscribe { value ->\n if (value.isInvalid()) {\n return@subscribe\n }\n process(value)\n}\n```\n\nQue signifie `return@subscribe` ? Pourquoi ne peut-on pas simplement écrire `return` ? Expliquez-moi, s'il vous plaît.
No answers yet.
Connectez-vous pour laisser une réponse
Blogs