التعامل الاصطلاحي مع القيم nullable في Kotlin: التحويل والوصول الآمن
مرحبًا! لقد بدأت مؤخرًا في تعلم Kotlin بعد Java ولا أستطيع التعود على النظام الصارم للأنواع nullable. لدي عدة سيناريوهات أرتبك فيها حول كيفية التعامل مع null بشكل صحيح.
على سبيل المثال، لدي دالة تُرجع String? nullable من قاعدة البيانات. أحتاج إلى:
1. التحقق مما إذا كانت القيمة ليست null
2. إذا لم تكن null، تحويلها إلى Int (parsing)
3. إذا فشل التحويل أو كانت القيمة null — إرجاع 0
لقد كتبت هذا الكود، لكنه يبدو فظيعًا:
```kotlin
fun parseNullableInt(value: String?): Int {
if (value != null) {
return try {
value.toInt()
} catch (e: NumberFormatException) {
0
}
} else {
return 0
}
}
```
هذا يعمل، لكن بالتأكيد هناك طريقة أكثر إيجازًا واصطلاحية. كما أنني مهتم بـ:
- كيفية استدعاء الطرق على الكائنات nullable بأمان؟
- كيفية تحويل الأنواع nullable إلى non-nullable بقيمة افتراضية؟
- ما هو عامل Elvis ومتى يتم استخدامه؟