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

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

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

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

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

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

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

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

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

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;
}

 

تساعد ميزة سلامة القيم الفارغة (Null safety) في حماية تطبيقك من الانهيارات غير المتوقعة التي تحدث عندما يحاول الكود الخاص بك استخدام قيم null في العمليات.

challenge icon

التحدي

مبتدئ

قم بإنشاء برنامج بلغة Dart يوضح أساسيات سلامة القيم الخالية (null safety) باستخدام عامل التشغيل ?:

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

بعد ذلك:

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

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

ورقة مرجعية

بشكل افتراضي، لا يمكن أن تكون متغيرات Dart فارغة (null). أضف ? بعد النوع للسماح بالقيم الفارغة:

// غير قابلة للقيمة الفارغة (افتراضي)
String name = 'Dart';

// قابلة للقيمة الفارغة باستخدام ?
String? name = 'Dart';
name = null;  // مسموح به الآن

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

int? age;           // القيمة الافتراضية هي null
double? price = 19.99;
bool? isAvailable = true;

// يمكن تعيين الجميع إلى null
price = null;
isAvailable = null;

جرّب بنفسك

void main() {
  // قم بالتصريح عن متغيراتك القابلة للإلغاء (nullable) هنا
  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اختبر نفسك

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

جميع دروس Fundamentals