Menu
CoddyTech

عامل Elvis

جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 15 من 93.

عامل الاستدعاء الآمن مفيد لتجنب الأعطال، لكنك تحتاج أحيانًا إلى قيمة فعلية بدلًا من null. يتيح لك عامل إلفيس ?: توفير قيمة افتراضية عندما يكون التعبير null.

الصياغة بسيطة: ضع ?: بعد تعبير قابل لأن تكون قيمته null، متبوعًا بالقيمة البديلة:

fun main() {
    val name: String? = null
    val displayName = name ?: "Guest"
    println(displayName)  // يطبع: Guest
}

إذا لم يكن الجانب الأيسر null، تُستخدَم تلك القيمة. وإذا كان null، يصبح الجانب الأيمن هو النتيجة. يعمل هذا بشكل مثالي مع الاستدعاءات الآمنة:

fun main() {
    val text: String? = null
    val length = text?.length ?: 0
    println(length)  // يطبع: 0
    
    val greeting: String? = "Hello"
    val greetingLength = greeting?.length ?: 0
    println(greetingLength)  // يطبع: 5
}

سُمّي هذا العامل بهذا الاسم لأن ?: يشبه شعر إلفيس عند النظر إليه من الجانب. والأهم من ذلك، أنه يمنحك طريقة واضحة لتحويل الأنواع القابلة للقيمة الفارغة إلى قيم غير قابلة لها، مع قيم افتراضية مناسبة.

challenge icon

التحدي

سهل

للطرد تسمية تتبّع اختيارية ووجهة اختيارية. يوفّر القالب القيمتين القابلتين لأن تكونا فارغتين. استخدم ?: لاختيار "Pending" عند غياب تسمية التتبّع، و"Unassigned" عند غياب الوجهة. اطبع التسمية المختارة، ثم الوجهة المختارة، كلٌّ في سطر منفصل.

جرّب بنفسك

fun main() {
    val trackingLabel: String? = null
    val destination: String? = "Harbor"
    // اختر قيمتي العرض واطبعهما.
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Kotlin