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.
J'ai ce code :
```kotlin
fun main() {
listOf(1, 2, 3, 4, 5).forEach {
if (it == 3) {
return@forEach
}
println(it)
}
println("Prêt")
}
```
Je 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 ?
J'ai aussi vu cet exemple avec RxJava :
```kotlin
observable.subscribe { value ->
if (value.isInvalid()) {
return@subscribe
}
process(value)
}
```
Que 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