Avatar ·

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.