معامل التعامل مع Null
جزء من قسم Fundamentals في رحلة Dart على Coddy — الدرس 28 من 94.
يعيد عامل التحقق من القيمة الفارغة (null-aware operator) (??) التعبير الأيسر إذا لم يكن null، وإلا فإنه يعيد التعبير الأيمن.
void main() {
String? name = 'Dart';
String displayName = name ?? 'Guest';
print('Hello, $displayName!');
}void main() {
String? name = null;
String displayName = name ?? 'Guest';
print('Hello, $displayName!');
}void main() {
int? score; // لا توجد قيمة أولية، القيمة الافتراضية هي null
int displayScore = score ?? 0;
print('Your score: $displayScore');
// لاحقاً في البرنامج، يحصل score على قيمة
score = 100;
displayScore = score ?? 0;
print('Your updated score: $displayScore');
}التحدي
سهلأنشئ برنامجاً يوضح عامل الوعي بالقيمة الخالية (??) في Dart:
- قم بالتصريح عن متغير String قابل للقيمة الخالية باسم
usernameوقم بتعيينه إلىnull - قم بالتصريح عن متغير int قابل للقيمة الخالية باسم
userAgeوقم بتعيينه إلىnull - استخدم عامل الوعي بالقيمة الخالية لتعيين قيمة افتراضية
"Guest"لمتغير جديدdisplayNameإذا كانusernameهو null - استخدم عامل الوعي بالقيمة الخالية لتعيين قيمة افتراضية
18لمتغير جديدdisplayAgeإذا كانuserAgeهو null - اطبع القيم بالتنسيق التالي تماماً:
Username: Guest (default value used)
Age: 18 (default value used)ثم:
- قم بتحديث
usernameإلى"DartUser" - قم بتحديث
userAgeإلى25 - كرر الخطوتين 3 و 4 بالقيم المحدثة
- اطبع القيم بالتنسيق التالي تماماً:
Username: DartUser (original value used)
Age: 25 (original value used)ورقة مرجعية
يعيد عامل التحقق من القيمة الفارغة (??) التعبير الأيسر إذا لم يكن null، وإلا فإنه يعيد التعبير الأيمن.
String? name = null;
String displayName = name ?? 'Guest'; // يعيد 'Guest' لأن name هو null
int? score = 100;
int displayScore = score ?? 0; // يعيد 100 لأن score ليس nullجرّب بنفسك
void main() {
// التصريح عن متغيرات قابلة للقيمة الخالية (nullable)
String? username = _;
int? userAge = _;
// استخدام معامل التحقق من القيمة الخالية للقيم الافتراضية
String displayName = username ?? _;
int displayAge = userAge ?? _;
// طباعة القيم الأولية
print("Username: $displayName (default value used)");
print("Age: $displayAge (default value used)");
// تحديث المتغيرات
username = _;
userAge = _;
// استخدام معامل التحقق من القيمة الخالية مرة أخرى
displayName = username _ "Guest";
displayAge = userAge _ 18;
// طباعة القيم المحدثة
print("Username: $displayName (original value used)");
print("Age: $displayAge (original value used)");
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
معاملات المقارنةالمعامل المنطقي ANDالمعامل المنطقي ORالمعامل المنطقي NOTمعاملات فحص النوعملخص - إجراء المقارنات7التعامل مع النصوص (Strings)
دمج النصوص (String Concatenation)تضمين النصوص (String Interpolation)النصوص متعددة الأسطر (Multi-line Strings)خصائص النصوص (String Properties)دوال النصوص الأساسية (String Methods)10المجموعات - أساسيات الخرائط
ما هي الخرائط؟إنشاء خريطةالوصول إلى القيم عبر المفتاحأزواج المفتاح والقيمةالحصول على حجم الخريطةالحصول على المفاتيحالحصول على القيمالتحقق من وجود مفتاح2المتغيرات وأنواع البيانات الأساسية
ما هي المتغيرات؟النصوص (Strings)الأعداد الصحيحة (int)الأعداد العشرية (double)القيم المنطقية (bool)استنتاج النوع باستخدام 'var'المتغيرات النهائية (Final)المتغيرات الثابتة (Constant)قواعد التسميةأساسيات الـ Null Safetyملخص - التصريح عن المتغيرات8مسار التحكم - الحلقات التكرارية
حلقة 'for' التكراريةحلقة 'while' التكراريةحلقة 'do-while' التكراريةاستخدام 'break' في الحلقات التكراريةاستخدام 'continue' في الحلقات التكراريةملخص - تكرار الكود البرمجي3المعاملات - الجزء الأول
المعاملات الحسابيةالقسمة الصحيحةمعامل باقي القسمة (Modulo)الزيادة والنقصاناختصارات التعيينملخص - الحسابات البسيطة6تدفق التحكم - اتخاذ القرار
جملة 'if'جملة 'else'جملة 'else if'ملخص - القرارات البسيطةجمل 'if' المتداخلةجملة 'switch'9المجموعات - أساسيات القوائم
ما هي القوائم؟إنشاء قائمةالوصول عبر الفهرسالحصول على طول القائمةإضافة عناصرإزالة عناصرالتحقق مما إذا كانت القائمة فارغةالتكرار عبر القائمة