ماذا يفعل العامل ?: في 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 يُسمى عامل إلفيس.