Cascades المختصرة عند null (?..)
نفّذ Cascade بأمان على الكائنات القابلة لـnull
Cascades المختصرة عند null (?..) درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
مأزق القيم القابلة لـ null
تؤدي cascade العادية على قيمة قد تكون null إلى انهيار البرنامج. فاستدعاء دالة على null يرمي خطأ قبل تنفيذ أي سطر.
تعرّفوا إلى Null-Shorting
يوفر Dart نسخة آمنة: null-shorting cascade، وتُكتب بعلامة استفهام متبوعة بنقطتين. ولا تُنفّذ إلا عندما لا يكون الكائن null.
button?..text = 'Save'
..onTap = save;كيف تعمل العلامة
إذا كان الهدف هو null، فتُتخطى cascade بأكملها ويصبح التعبير ببساطة null. لا انهيار ولا عمل غير مكتمل.
تحتاج النقطة الأولى فقط إلى العلامة
تكتبون question mark مرة واحدة فقط، في cascade الأولى. أما الأسطر اللاحقة فتبقى بنقطتين عاديتين؛ إذ يعرف Dart أن الكائن غير null.
obj?..a()
..b()
..c();إما الكل أو لا شيء
يعمل Null-shorting وفق مبدأ all or nothing: إما أن تُنفّذ كل الأسطر لأن الكائن موجود، أو لا يُنفّذ أي منها. ولا تُنفّذ السلسلة جزئيًا.
مقارنةً بـ Plain Cascade
تفترض cascade العادية وجود الكائن. أما الصيغة التي تستخدم Null-shorting فهي شبكة الأمان عندما يكون النوع nullable وقد تكون القيمة مفقودة.
يعيد قيمة Nullable
بما أن النتيجة قد تكون الكائن أو null، فإن التعبير بأكمله له نوع nullable. تعاملوا مع القيمة الناتجة على أنها قد تكون null.
مثال واقعي
تخيلوا إعدادًا قد لا يكون موجودًا بعد. يتيح لكم Null-shorting إعداده فقط عند وجوده، في سطر واحد واضح. 🛡️
settings?..theme = dark
..save();لا تكرروا العلامة
تُعد كتابة question mark في كل سطر خطأً، وسيشير Dart إليه. ويُتخذ قرار التعامل مع null مرة واحدة، في بداية السلسلة مباشرةً.
يتوافق جيدًا مع Null Safety
ينسجم Null-shorting مع مفهوم null safety في Dart. ويثق المترجم بأن الأسطر التي تلي النقطة الأولى تُنفّذ فقط على كائن حقيقي موجود.
متى تستخدمونه
استخدموا Null-shorting عندما يكون المتغير nullable وتريدون ضبطه من دون إضافة فحص if-null حول cascade.
تحقق سريع
كيف تكتبون null-shorting cascade بطريقة صحيحة؟
مراجعة
تُنفّذ null-shorting cascade (?..) السلسلة بأكملها فقط عند وجود الكائن، وتتخطى كل شيء عندما يكون null، ولا تحتاج إلى العلامة إلا مرة واحدة. 🎯
الأسئلة الشائعة
هل درس «Cascades المختصرة عند null (?..)» مجاني؟
نعم — نص درس «Cascades المختصرة عند null (?..)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «Cascades المختصرة عند null (?..)»؟
نفّذ Cascade بأمان على الكائنات القابلة لـnull تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «Cascades المختصرة عند null (?..)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- عامل Cascade (..)
- Cascades المختصرة عند null (?..)
- Spread وSpread الواعي بـnull
- if وfor في المجموعات