O que significa `return@` em Kotlin e como usar corretamente os labels de retorno?
Olá a todos! Estou aprendendo Kotlin e me deparei com uma construção estranha `return@`. Vejo isso em código com RxJava, mas não entendo para que serve.
Eu tenho este código:
```kotlin
fun main() {
listOf(1, 2, 3, 4, 5).forEach {
if (it == 3) {
return@forEach
}
println(it)
}
println("Pronto")
}
```
Eu esperava que `return` simplesmente saísse do forEach, mas ele sai de toda a função main. Sem `@forEach` o código nem compila, dando erro "return is not allowed here". Por que isso?
Também vi este exemplo com RxJava:
```kotlin
observable.subscribe { value ->
if (value.isInvalid()) {
return@subscribe
}
process(value)
}
```
O que significa `return@subscribe`? Por que não posso simplesmente escrever `return`? Expliquem, por favor, como funcionam esses labels. Quando devo usá-los e quando posso dispensá-los? Estou completamente confuso com essa sintaxe. Desde já, obrigado!
<<>>
O que são labels de retorno em Kotlin?
No answers yet.
Faça login para deixar uma resposta