Avatar ·

ماذا يفعل العامل ?: في Kotlin؟ (عامل إلفيس)

مرحبًا! بدأت للتو في تعلم Kotlin بعد Java وصادفت العامل الغريب ?:. رأيته في كود شخص آخر، لكنني لا أستطيع فهم ما يفعله. إليك مثال وجدته: ```kotlin val name: String? = null val displayName = name ?: "ضيف" println(displayName) // يطبع "ضيف" ``` إذا كتبت نفس الشيء باستخدام if-else، فإنه يأخذ 3-4 أسطر. إذن، ?: هو نوع من الصياغة المختصرة؟ لكنني لست متأكدًا متى يجب استخدامه، ومتى يكون من الأفضل استخدام الفحص العادي. كما رأيت هذا الكود الغريب: ```kotlin val length = text?.length ?: 0 ``` هنا يأتي أولاً ?. (استدعاء آمن)، ثم ?:. هل هذا قانوني أصلاً؟ وماذا سيحدث إذا كان text يساوي null؟ من فضلك اشرح كيف يعمل هذا العامل، وكيف يختلف عن if-else العادي، وهل هناك أي عيوب خفية له. شكرًا مقدمًا! <<>>

ما هو عامل إلفيس (?:) في Kotlin؟

العامل ?: في Kotlin يُسمى عامل إلفيس.