Avatar ·

ماذا تعني الكلمة المفتاحية suspend في كوروتينات Kotlin؟

مرحباً بالجميع! بدأت تعلم الكوروتينات في Kotlin، لكنني لا أستطيع فهم ما تفعله الكلمة المفتاحية `suspend` قبل الدالة. قرأت الوثائق، لكن التفسيرات كانت مجردة جداً. هذا مثال أحاول كتابته: ```kotlin fun fetchUserData(): String { Thread.sleep(2000) // محاكاة طلب طويل return "User data loaded" } fun main() { println("Start") val result = fetchUserData() println(result) println("End") } ``` هذا الكود يعمل، لكنه يمنع الخيط الرئيسي. أريد فعل نفس الشيء باستخدام الكوروتينات، لكنني لا أفهم لماذا يجب كتابة `suspend` وماذا يعطي. حاولت الكتابة هكذا: ```kotlin suspend fun fetchUserDataSuspend(): String { delay(2000) return "User data loaded" } fun main() { println("Start") val result = fetchUserDataSuspend() // خطأ في الترجمة! println(result) println("End") } ``` المترجم يعطي خطأ: "Suspend function 'fetchUserDataSuspend' should be c