Avatar ·

استخدام Boolean? في تعبير if في Kotlin

مرحبًا بالجميع! لقد بدأت للتو في تعلم Kotlin بعد Java، وواجهت مشكلة لا أستطيع فهمها. لدي متغير قابل للقيمة الخالية `isActive: Boolean?`، يمكن أن يكون `true` أو `false` أو `null`. أريد التحقق منه في شرط `if`: ```kotlin var isActive: Boolean? = null if (isActive) { println("نشط") } else { println("غير نشط") } ``` لكن المترجم يعطي خطأ: "Type mismatch: inferred type is Boolean? but Boolean was expected". أفهم أن `Boolean?` هو نوع nullable، و `if` يتوقع `Boolean` عادي. لكن كيف يمكن معالجة هذه الحالة بشكل صحيح؟ أحتاج إلى أنه عند `null`، يقوم البرنامج أيضًا بشيء (مثل اعتبارها "غير نشط"). أخبروني كيف يتم ذلك في Kotlin؟ لقد جربت استخدام `if (isActive == true)`، لكن هذا يبدو حلاً مؤقتًا. هل هناك طريقة أكثر idiomatic؟ شكرًا مقدمًا على المساعدة! <<>>

المشكلة: لماذا لا يمكن استخدام Boolean? في if

في Kotlin، النوع Boolean?