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 gebraucht wird.\n\nIch habe diesen Code:\n\n```kotlin\nfun main() {\n listOf(1, 2, 3, 4, 5).forEach {\n if (it == 3) {\n return@forEach\n }\n println(it)\n }\n println("Fertig")\n}\n```\n\nIch erwartete, dass `return` einfach aus forEach austritt, aber es verlässt die gesamte Funktion main. Ohne `@forEach` wird der Code gar nicht kompiliert mit dem Fehler "return is not allowed here". Warum ist das so?\n\nAußerdem habe ich dieses Beispiel mit RxJava gesehen:\n\n```kotlin\nobservable.subscribe { value ->\n if (value.isInvalid()) {\n return@subscribe\n }\n process(value)\n}\n```\n\nWas bedeutet `return@subscribe`? Warum kann man nicht einfach `return` schreiben? Erklärt mir bitte, wie diese Labels funktionieren. Wann muss man sie verwenden und wann kann man ohne sie auskommen? Ich bin total verwirrt mit dieser Syntax. Vielen Dank im Voraus!\n<<>>\n
Was sind Return-Labels in Kotlin?
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs