عامل Elvis
جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 15 من 93.
عامل الاستدعاء الآمن رائع لتجنّب الأعطال، لكنك تحتاج أحيانًا إلى قيمة فعلية بدلًا من null. يتيح لك عامل Elvis ?: توفير قيمة افتراضية عندما يكون التعبير null.
البنية النحوية بسيطة: ضع ?: بعد تعبير قابل للقيمة الفارغة، متبوعًا بالقيمة البديلة:
fun main() {
val name: String? = null
val displayName = name ?: "Guest"
println(displayName) // يطبع: Guest
}إذا لم يكن الجانب الأيسر فارغًا، تُستخدَم تلك القيمة. وإذا كان فارغًا، يصبح الجانب الأيمن هو النتيجة. يعمل هذا بشكل مثالي مع الاستدعاءات الآمنة:
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
}يحصل العامل على اسمه لأن ?: يشبه شعر إلفيس عند النظر إليه من الجانب. والأهم من ذلك، أنه يمنحك طريقة واضحة لتحويل الأنواع القابلة للقيمة الفارغة إلى قيم غير قابلة للقيمة الفارغة مع قيم افتراضية معقولة.
التحدي
سهلتحتوي حزمة على ملصق تتبّع اختياري ووجهة اختيارية. يوفّر القالب الابتدائي قيمتين قابلتين لأن تكونا null. استخدم ?: لاختيار "Pending" عندما يكون ملصق التتبّع مفقودًا، و"Unassigned" عندما تكون الوجهة مفقودة. اطبع الملصق المختار، ثم الوجهة المختارة، في سطرين منفصلين.
جرّب بنفسك
fun main() {
val trackingLabel: String? = null
val destination: String? = "Harbor"
// اختر واطبع قيمتي العرض.
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4العوامل - الجزء الأول
العوامل الحسابيةعامل باقي القسمةالإسناد المُعزَّزعوامل المقارنةمراجعة - الرياضيات البسيطة7أساسيات الإدخال والإخراج
دالة Printlnقوالب السلاسل النصيةإدخال ReadLineتحويل النوعمراجعة - السنوات حتى التقاعدمراجعة - صواب أم خطأ10الدوال
تعريف دالةالمعاملات والوسائطالقيم المُعادةالوسائط المُسمّاةالقيم الافتراضيةالدوال ذات التعبير الواحدمراجعة - دالة سيغمامراجعة - دالة التحقق2المتغيرات
val مقابل varاستنتاج النوعالأعدادالسلسلة النصيةالقيمة المنطقيةاصطلاحات التسميةمراجعة - تهيئة المتغيرات5المعاملات الجزء 2
المعاملات المنطقية الجزء 1المعاملات المنطقية الجزء 2المعاملات المنطقية الجزء 3المعامل الثلاثي مع تعبير Ifمراجعة - المنطق البسيط8حاسبة تقسيم الفاتورة
رسالة ترحيبيةالحصول على الإدخال3القابلية للقيمة الفارغة
ما هو الأمان من القيم الفارغةالأنواع القابلة للقيمة الفارغةعامل الاستدعاء الآمنعامل Elvisأساسيات تحدي الدوالتأكيد عدم كون القيمة فارغةمراجعة - الوصول الآمن9الحلقات
حلقة Forحلقة Whileحلقة Do-WhileBreakContinueالنطاقات في الحلقاتالحلقة المتداخلةمراجعة - المضروبمراجعة - الإدخال الديناميكيتدرّب بنفسك: Playground لـ Kotlin