Avatar ·

ما يعادل بناء Swift 'if let' في Kotlin للعمل الآمن مع الأنواع القابلة للصفر

مرحباً بالجميع! لقد بدأت للتو في تعلم Kotlin بعد Swift، وواجهت مشكلة. في Swift، كنت أستخدم غالباً البناء `if let` لاستخراج القيم الاختيارية بأمان. على سبيل المثال: ```swift var name: String? = "Alice" if let unwrappedName = name { print("Hello, \(unwrappedName)") } else { print("Name is nil") } ``` هذا يسمح لي بالتحقق مما إذا كانت هناك قيمة في الاختياري، وإذا كانت موجودة — استخراجها تلقائياً واستخدامها داخل الكتلة. مريح جداً لتجنب force unwrapping. في Kotlin، أرى أن الأنواع يمكن أن تكون nullable (مع `?`) و non-null. لكنني لا أجد مكافئاً مباشراً لـ `if let`. حاولت الكتابة هكذا: ```kotlin var name: String? = "Alice" if (name != null) { println("Hello, $name") } ``` لكن هذا يعمل فقط إذا كان المتغير `name` لا يتغير بين التحقق والاستخدام (المترجم ذكي، هذا smart cast). ماذا لو أردت إنشاء متغير جديد بنوع غير nullable، كما في Swift؟ أو إذا كنت أعمل مع متغيرات قابلة للتغيير؟