Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الأنواع القابلة للقيمة الفارغة

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

أحيانًا تحتاج حقًا إلى متغير يمكنه الاحتفاظ بـ "لا شيء". على سبيل المثال، قد لا يكون الاسم الأوسط للمستخدم موجودًا، أو قد يُرجع البحث بلا نتائج. تتيح Kotlin ذلك من خلال الأنواع القابلة للقيمة الفارغة.

لجعل نوع ما يقبل القيمة الفارغة، أضف ? بعد اسم النوع:

fun main() {
    var middleName: String? = "Marie"
    middleName = null  // هذا مسموح به الآن!
    
    val age: Int? = null  // يمكن أن يحمل Int أو null
}

تخبر ? لغة Kotlin: "قد يكون هذا المتغير بقيمة فارغة، لذا تعامل معه بحذر." من دون ?، يكون النوع غير قابل للقيمة الفارغة ولا يمكنه أبدًا الاحتفاظ بـ null.

مهم: الأنواع القابلة للقيمة الفارغة والأنواع غير القابلة للقيمة الفارغة مختلفة. لا يمكنك إسناد قيمة قابلة للقيمة الفارغة مباشرةً إلى متغير غير قابل للقيمة الفارغة:

fun main() {
    val nullableName: String? = "Alice"
    val regularName: String = nullableName  // خطأ!
}

هذا التمييز مقصود. فهو يجبرك على التعامل مع احتمال كون القيمة فارغة قبل استخدامها. في الدروس القادمة، ستتعلّم الطرق الآمنة التي توفرها Kotlin للعمل مع القيم القابلة لأن تكون فارغة.

challenge icon

التحدي

سهل

صرّح عن المتغيرات القابلة للقيمة الفارغة التالية:

  • متغير String قابل للقيمة الفارغة باسم nickname وقيمته "Shadow"
  • متغير Int قابل للقيمة الفارغة باسم age وقيمته null
  • متغير Double قابل للقيمة الفارغة باسم balance وقيمته 99.5

ثم اطبع القيم الثلاث جميعها في أسطر منفصلة باستخدام println().

تذكّر استخدام ? بعد اسم النوع لجعله قابلًا للقيمة الفارغة. ستؤدي طباعة قيمة null إلى عرض الكلمة null.

جرّب بنفسك

fun main() {
    // TODO: أعلن عن المتغيرات التالية القابلة للقيمة الفارغة:
    // 1. String قابل للقيمة الفارغة باسم 'nickname' بقيمة "Shadow"
    // 2. Int قابل للقيمة الفارغة باسم 'age' بقيمة null
    // 3. Double قابل للقيمة الفارغة باسم 'balance' بقيمة 99.5
    
    // ثم اطبع القيم الثلاث جميعها في أسطر منفصلة
    
}
quiz iconاختبر نفسك

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

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

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