Avatar ·

ما معنى `return@` في Kotlin وكيفية استخدام علامات الإرجاع بشكل صحيح؟

مرحباً بالجميع! أنا أتعلم Kotlin وقد صادفت بناء غريباً هو `return@`. أراه في كود RxJava لكني لا أفهم لماذا هو مطلوب. لدي هذا الكود: ```kotlin fun main() { listOf(1, 2, 3, 4, 5).forEach { if (it == 3) { return@forEach } println(it) } println("جاهز") } ``` كنت أتوقع أن `return` سيخرج ببساطة من forEach، لكنه يخرج من الدالة main بأكملها. بدون `@forEach` الكود لا يتم تجميعه أصلاً مع خطأ "return is not allowed here". لماذا يحدث هذا؟ كما رأيت هذا المثال مع RxJava: ```kotlin observable.subscribe { value -> if (value.isInvalid()) { return@subscribe } process(value) } ``` ماذا يعني `return@subscribe`؟ لماذا لا يمكن ببساطة كتابة `return`؟ أرجو التوضيح، من فضلكم.