الأنواع القابلة لقيمة Null
جزء من قسم Fundamentals في رحلة Dart على Coddy — الدرس 78 من 94.
يتم التصريح عن الأنواع التي تقبل القيمة null (Nullable types) في Dart عن طريق إضافة علامة استفهام (?) بعد اسم النوع. هذا يخبر Dart أن المتغير يمكنه أن يحمل إما قيمة من ذلك النوع أو null.
قم بالتصريح عن متغيرات قابلة للقيمة null من أنواع مختلفة:
String? name;
int? age;
bool? isActive;
double? price;يمكن تعيين قيم لهذه المتغيرات أو null:
name = 'Dart';
age = null;
isActive = true;
price = null;
print(name);
print(age);
print(isActive);
print(price);بعد تنفيذ الكود أعلاه، ستكون النتيجة:
Dart
null
true
nullالتحدي
مبتدئفي هذا التحدي، ستتدرب على التعامل مع الأنواع القابلة للإلغاء (nullable types) في Dart. يتم التصريح عن النوع القابل للإلغاء بإضافة علامة استفهام (?) بعد اسم النوع، مما يسمح للمتغير بحمل قيمة أو null.
أكمل الكود للتحقق مما إذا كان المتغير username هو null. إذا كان كذلك، اطبع "No username provided". إذا لم يكن null، اطبع "Username: " متبوعاً بقيمة username.
ورقة مرجعية
يتم التصريح عن الأنواع القابلة للإلغاء (Nullable types) في Dart عن طريق إضافة علامة استفهام (?) بعد اسم النوع، مما يسمح للمتغيرات بحمل إما قيمة من ذلك النوع أو null:
String? name;
int? age;
bool? isActive;
double? price;يمكن تعيين قيم أو null للمتغيرات القابلة للإلغاء:
name = 'Dart';
age = null;
isActive = true;
price = null;جرّب بنفسك
void main() {
// يمكن أن يكون هذا المتغير null بسبب وجود ? بعد String
String? username = null;
// TODO: تحقق مما إذا كان username هو null
// إذا كان null، اطبع "No username provided"
// إذا لم يكن null، اطبع "Username: " متبوعاً بقيمة username
// لاحقاً في البرنامج، سيحصل username على قيمة
username = "DartLearner";
// TODO: تحقق من username مرة أخرى باستخدام نفس الشرط
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
معاملات المقارنةالمعامل المنطقي ANDالمعامل المنطقي ORالمعامل المنطقي NOTمعاملات فحص النوعملخص - إجراء المقارنات7التعامل مع النصوص (Strings)
دمج النصوص (String Concatenation)تضمين النصوص (String Interpolation)النصوص متعددة الأسطر (Multi-line Strings)خصائص النصوص (String Properties)دوال النصوص الأساسية (String Methods)10المجموعات - أساسيات الخرائط
ما هي الخرائط؟إنشاء خريطةالوصول إلى القيم عبر المفتاحأزواج المفتاح والقيمةالحصول على حجم الخريطةالحصول على المفاتيحالحصول على القيمالتحقق من وجود مفتاح13أمان الـ Null بشكل متعمق
فهم الـ Nullالأنواع القابلة لقيمة Nullالأنواع غير القابلة لقيمة Nullعامل التأكيد على الـ Nullالتهيئة المتأخرةملخص - التعامل مع الـ Null بأمان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المجموعات - أساسيات القوائم
ما هي القوائم؟إنشاء قائمةالوصول عبر الفهرسالحصول على طول القائمةإضافة عناصرإزالة عناصرالتحقق مما إذا كانت القائمة فارغةالتكرار عبر القائمة