Was bedeutet `return@` in Kotlin und wie verwendet man Return-Labels richtig?
Hallo zusammen! Ich lerne Kotlin und bin auf die seltsame Konstruktion `return@` gestoßen. Ich sehe sie in Code mit RxJava, verstehe aber nicht, wofür sie benötigt wird.
Ich habe diesen Code:
```kotlin
fun main() {
listOf(1, 2, 3, 4, 5).forEach {
if (it == 3) {
return@forEach
}
println(it)
}
println("Fertig")
}
```
Ich habe erwartet, dass `return` einfach aus der forEach-Schleife aussteigt, aber es verlässt die gesamte main-Funktion. Ohne `@forEach` lässt sich der Code gar nicht kompilieren, mit dem Fehler "return is not allowed here". Warum ist das so?
Außerdem habe ich dieses Beispiel mit RxJava gesehen:
```kotlin
observable.subscribe { value ->
if (value.isInvalid()) {
return@subscribe
}
process(value)
}
```
Was bedeutet `return@subscribe`? Warum kann man nicht einfach `return` schreiben? Bitte erklärt es mir.