ما هو الأمان من القيم الفارغة
جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 12 من 93.
في العديد من لغات البرمجة، يُعدّ أحد الأخطاء الأكثر شيوعًا محاولة الوصول إلى شيء غير موجود: قيمة null. يحدث هذا عندما يحتوي متغير على "لا شيء" بدلًا من بيانات فعلية.
تخيّل أن تطلب اسم مستخدم، لكنه لم يقدّم اسمًا قط. إذا حاولت شفرتك استخدام ذلك الاسم الفارغ من دون التحقّق أولًا، فسيتعطّل برنامجك. هذا النوع من الأخطاء شائع جدًا لدرجة أنه سُمّي «خطأ المليار دولار».
حل Kotlin: الأمان من القيم الفارغة
صُممت Kotlin للقضاء على هذه الأعطال. افتراضيًا، لا يمكن للمتغيرات في Kotlin أن تحتوي على قيم null:
fun main() {
var name: String = "Alice"
name = null // خطأ! لن يتم التجميع
}يكتشف المصرّف هذه المشكلة قبل أن يُشغَّل برنامجك حتى. وهذا ما يجعل Kotlin «آمنة من القيم الفارغة»: فاللغة نفسها تمنعك من استخدام null عن طريق الخطأ في موضع لا ينبغي أن تُستخدم فيه.
في الدروس القادمة، ستتعلّم كيف تتيح لك Kotlin العمل مع قيم قد تكون خالية عندما تحتاج إليها فعليًا، مع الحفاظ في الوقت نفسه على أمان التعليمات البرمجية من الأعطال.
التحدي
سهلأعلن عن متغيرين غير قابلين للقيمة null لتوضيح أمان القيم الفارغة في Kotlin:
- متغير
Stringباسمusernameوقيمته"Kotlin" - متغير
Intباسمscoreوقيمته100
ثم اطبع القيمتين في سطرين منفصلين باستخدام println().
تذكّر: في Kotlin، لا يمكن للأنواع العادية (غير القابلة للقيمة
null) أن تحتوي على قيمnull. يضمن المصرّف أن تحتوي متغيراتك دائمًا على بيانات صالحة.
جرّب بنفسك
fun main() {
// TODO: اكتب الكود الخاص بك أدناه
// أعلن عن متغير String غير قابل للقيمة null باسم 'username' بالقيمة "Kotlin"
// أعلن عن متغير Int غير قابل للقيمة null باسم 'score' بالقيمة 100
// اطبع كلا القيمتين في سطرين منفصلين باستخدام println()
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4العوامل - الجزء الأول
العوامل الحسابيةعامل باقي القسمةالإسناد المُعزَّزعوامل المقارنةمراجعة - الرياضيات البسيطة7أساسيات الإدخال والإخراج
دالة Printlnقوالب السلاسل النصيةإدخال ReadLineتحويل النوعمراجعة - السنوات حتى التقاعدمراجعة - صواب أم خطأ10الدوال
تعريف دالةالمعاملات والوسائطالقيم المُعادةالوسائط المُسمّاةالقيم الافتراضيةالدوال ذات التعبير الواحدمراجعة - دالة سيغمامراجعة - دالة التحقق2المتغيرات
val مقابل varاستنتاج النوعالأعدادالسلسلة النصيةالقيمة المنطقيةاصطلاحات التسميةمراجعة - تهيئة المتغيرات5المعاملات الجزء 2
المعاملات المنطقية الجزء 1المعاملات المنطقية الجزء 2المعاملات المنطقية الجزء 3المعامل الثلاثي مع تعبير Ifمراجعة - المنطق البسيط8حاسبة تقسيم الفاتورة
رسالة ترحيبيةالحصول على الإدخال3القابلية للقيمة الفارغة
ما هو الأمان من القيم الفارغةالأنواع القابلة للقيمة الفارغةعامل الاستدعاء الآمنعامل Elvisأساسيات تحدي الدوالتأكيد عدم كون القيمة فارغةمراجعة - الوصول الآمن9الحلقات
حلقة Forحلقة Whileحلقة Do-WhileBreakContinueالنطاقات في الحلقاتالحلقة المتداخلةمراجعة - المضروبمراجعة - الإدخال الديناميكيتدرّب بنفسك: Playground لـ Kotlin