الأنواع القابلة للقيمة الفارغة
جزء من قسم الأساسيات في رحلة 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 للعمل مع القيم القابلة لأن تكون فارغة.
التحدي
سهلصرّح عن المتغيرات القابلة للقيمة الفارغة التالية:
- متغير
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
// ثم اطبع القيم الثلاث جميعها في أسطر منفصلة
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4العوامل - الجزء الأول
العوامل الحسابيةعامل باقي القسمةالإسناد المُعزَّزعوامل المقارنةمراجعة - الرياضيات البسيطة7أساسيات الإدخال والإخراج
دالة Printlnقوالب السلاسل النصيةإدخال ReadLineتحويل النوعمراجعة - السنوات حتى التقاعدمراجعة - صواب أم خطأ10الدوال
تعريف دالةالمعاملات والوسائطالقيم المُعادةالوسائط المُسمّاةالقيم الافتراضيةالدوال ذات التعبير الواحدمراجعة - دالة سيغمامراجعة - دالة التحقق2المتغيرات
val مقابل varاستنتاج النوعالأعدادالسلسلة النصيةالقيمة المنطقيةاصطلاحات التسميةمراجعة - تهيئة المتغيرات5المعاملات الجزء 2
المعاملات المنطقية الجزء 1المعاملات المنطقية الجزء 2المعاملات المنطقية الجزء 3المعامل الثلاثي مع تعبير Ifمراجعة - المنطق البسيط8حاسبة تقسيم الفاتورة
رسالة ترحيبيةالحصول على الإدخال3القابلية للقيمة الفارغة
ما هو الأمان من القيم الفارغةالأنواع القابلة للقيمة الفارغةعامل الاستدعاء الآمنعامل Elvisأساسيات تحدي الدوالتأكيد عدم كون القيمة فارغةمراجعة - الوصول الآمن9الحلقات
حلقة Forحلقة Whileحلقة Do-WhileBreakContinueالنطاقات في الحلقاتالحلقة المتداخلةمراجعة - المضروبمراجعة - الإدخال الديناميكيتدرّب بنفسك: Playground لـ Kotlin