Avatar ·

¿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!