ما هو الأمان من القيم الفارغة
جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 12 من 93.
في كثير من لغات البرمجة، أحد أكثر الأخطاء شيوعًا هو محاولة الوصول إلى شيء غير موجود: قيمة null. يحدث هذا عندما يحتوي متغير على «لا شيء» بدلًا من بيانات فعلية.
تخيّل أن تطلب اسم مستخدم، لكنه لم يقدّمه أبدًا. إذا حاولت شفرتك استخدام ذلك الاسم الفارغ من دون التحقق أولًا، فسيتعطل برنامجك. هذا النوع من الأخطاء شائع جدًا لدرجة أنه سُمّي «الخطأ الذي كلّف مليار دولار».
حل Kotlin: الأمان من القيم الخالية
صُممت Kotlin للقضاء على هذه الأعطال. افتراضيًا، لا يمكن للمتغيرات في Kotlin أن تحتوي على قيم فارغة:
fun main() {
var name: String = "Alice"
name = null // خطأ! لن يُترجم البرنامج
}يكتشف المترجم هذه المشكلة قبل أن يعمل الكود حتى. وهذا ما يجعل Kotlin «آمنة من القيم null»: فاللغة نفسها تمنعك من استخدام null عن طريق الخطأ في موضع لا ينبغي أن تُستخدم فيه.
في الدروس القادمة، ستتعلم كيف يتيح لك Kotlin العمل مع القيم التي قد تكون فارغة عندما تحتاج إليها فعليًا، مع الحفاظ على أمان كودك من الأعطال.
التحدي
سهلأعلن عن متغيرين غير قابلين للقيمة الفارغة لتوضيح أمان التعامل مع القيم الفارغة في Kotlin:
- متغير
Stringباسمusernameوقيمته"Kotlin" - متغير
Intباسمscoreوقيمته100
ثم اطبع القيمتين في سطرين منفصلين باستخدام println().
تذكّر: في Kotlin، لا يمكن للأنواع العادية (غير القابلة للقيمة الفارغة) أن تحتوي على قيم
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