Menu
CoddyTech

أساسيات الـ Null Safety

جزء من قسم الأساسيات في رحلة Dart على Coddy. الدرس 14 من 94.

تساعد سلامة القيم الفارغة على منع تعطل التطبيقات بشكل غير متوقع، من خلال التحكم في المتغيرات التي يمكن أن تكون فارغة (null).

افتراضيًا، يجب أن تحتوي المتغيرات على قيمة:

void main() {
  String name = 'Dart';
  print(name);  // الناتج: Dart
  
  // هذا سيسبب مشكلات:
  // name = null;  // غير مسموح
}

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

void main() {
  String? name = 'Dart';
  print(name);  // المخرجات: Dart
  
  // يمكننا الآن إسناد null
  name = null;
  print(name);  // المخرجات: null
}

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

void main() {
  int? age;  // لا توجد قيمة ابتدائية، لذا تكون القيمة الافتراضية null
  double? price = 19.99;
  bool? isAvailable = true;
  
  print(age);         // الناتج: null
  print(price);       // الناتج: 19.99
  print(isAvailable); // الناتج: true
  
  // يمكننا تغيير أيٍّ من هذه القيم إلى null
  price = null;
  isAvailable = null;
}

 

تساعد السلامة من القيم الفارغة على حماية تطبيقك من الأعطال غير المتوقعة التي تحدث عندما يحاول الكود استخدام قيم فارغة في العمليات.

challenge icon

التحدي

مبتدئ

أنشئ برنامجًا بلغة Dart يوضّح أساسيات الأمان من القيم الفارغة باستخدام العامل ?:

  1. صرّح عن متغير من النوع String باسم username واجعل قيمته null باستخدام عامل الأمان من القيم الفارغة ? (String?)
  2. صرّح عن متغير من النوع int باسم userAge واجعل قيمته null باستخدام عامل الأمان من القيم الفارغة
  3. اطبع كلا المتغيرين مع تسميات بالتنسيق التالي تمامًا:
Username: null
User age: null

ثم:

  1. أسند القيمة "DartLearner" إلى المتغير username
  2. أسند القيمة 25 إلى المتغير userAge
  3. اطبع كلا المتغيرين مرة أخرى بالتنسيق نفسه تمامًا كما في السابق

يجب أن يطابق ناتجك التنسيق الموضح أعلاه تمامًا.

جرّب بنفسك

void main() {
  // صرّح هنا عن متغيراتك التي تقبل القيمة الفارغة
  String? username = ?;
  int? userAge = ?;
  
  // اطبع القيم الأولية مع التسميات
  print("Username: " + username.toString());
  print("User age: " + userAge.toString());
  
  // أسند قيمًا جديدة إلى المتغيرات
  username = ?;
  userAge = ?;
  
  // اطبع القيم المحدّثة بالتسميات نفسها
  print("Username: " + username.toString());
  print("User age: " + userAge.toString());
}
quiz iconاختبر نفسك

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

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

تدرّب بنفسك: مترجم Dart عبر الإنترنت