¿Qué significa `return@` en Kotlin y cómo usar correctamente las etiquetas de retorno?
¡Hola a todos! Estoy aprendiendo Kotlin y me encontré con la extraña construcción `return@`. La veo en código con RxJava, pero no entiendo para qué sirve.
Tengo este código:
```kotlin
fun main() {
listOf(1, 2, 3, 4, 5).forEach {
if (it == 3) {
return@forEach
}
println(it)
}
println("Готово")
}
```
Esperaba que `return` simplemente saliera del forEach, pero sale de toda la función main. Sin `@forEach` el código ni siquiera compila con el error "return is not allowed here". ¿Por qué ocurre esto?
También vi este ejemplo con RxJava:
```kotlin
observable.subscribe { value ->
if (value.isInvalid()) {
return@subscribe
}
process(value)
}
```
¿Qué significa `return@subscribe`? ¿Por qué no se puede simplemente escribir `return`? Expliquen, por favor, cómo funcionan estas etiquetas. ¿Cuándo deben usarse y cuándo se puede prescindir de ellas? Estoy muy confundido con esta sintaxis. ¡Gracias de antemano!