Spread وSpread الواعي بـnull
أدرج مجموعة داخل أخرى مباشرة
Spread وSpread الواعي بـnull درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
دمج المجموعات
غالبًا ما تريدون نقل جميع عناصر قائمة إلى قائمة أخرى. يدرج spread operator في Dart مجموعة كاملة ضمن خطوة واحدة.
تعرّفوا إلى النقاط الثلاث
إن spread operator عبارة عن ثلاث نقاط توضع قبل مجموعة داخل literal لقائمة أو set أو map. وتُدرج عناصرها مباشرةً.
var more = [4, 5];
var all = [1, 2, 3, ...more];ما الذي ينتجه Spread
ينسخ Spread عناصر المصدر إلى المجموعة الجديدة. والنتيجة قائمة fresh، بينما تبقى المجموعة الأصلية من دون تغيير.
استخدموا Spread في أي موضع
يمكنكم وضع spread في start, middle, or end، وخلط عدة spreads مع العناصر العادية داخل literal نفسها.
var x = [0, ...a, 9, ...b];مشكلة null
إذا كانت المجموعة التي تستخدمون spread عليها هي null، فإن spread العادية ترمي خطأ. وهذا خطر عندما قد لا يكون المصدر موجودًا بعد.
Spread مع مراعاة null
أضيفوا علامة استفهام إلى null-aware spread، التي تُكتب بعلامة استفهام متبوعة بثلاث نقاط. ولا يضيف المصدر null أي شيء ببساطة.
var all = [1, 2, ...?maybeNull];يتخطى ولا ينهار
مع null-aware spread، يجري skipped للمجموعة التي قيمتها null. وتحصلون على بقية العناصر من دون أي خطأ أثناء التشغيل.
يعمل Spread مع Sets
لا يقتصر Spread على القوائم. فعند استخدامه داخل literal من نوع set، يُدرج العناصر أيضًا، وتُحذف التكرارات للحفاظ على فرادة المجموعة.
var s = {1, 2, ...other};يعمل Spread مع Maps
يمكنكم استخدام spread لإدراج map داخل أخرى ودمج الإدخالات. وتنتصر المفاتيح اللاحقة، لذا يمكن لـ spread تجاوز القيم السابقة بسلاسة.
var m = {'a': 1, ...defaults};Spread مقابل addAll
ينشئ Spread مجموعة جديدة داخل literal، بينما يغيّر addAll مجموعة موجودة. استخدموا spread عندما تريدون نتيجة جديدة.
لماذا يسهل قراءته
يبقي Spread الغرض واضحًا: إذ ترون بالضبط الأجزاء التي تكوّن المجموعة الجديدة، كلها داخل literal مرتبة واحدة. 📦
تحقق سريع
ماذا يحدث عند استخدام null-aware spread مع مجموعة قيمتها null؟
مراجعة
يدرج spread (...) مجموعةً داخل literal، بينما يتخطى null-aware spread (...?) مصدرًا قيمته null بأمان. ويعمل ذلك مع القوائم وSets وMaps. 🎯
الأسئلة الشائعة
هل درس «Spread وSpread الواعي بـnull» مجاني؟
نعم — نص درس «Spread وSpread الواعي بـnull» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «Spread وSpread الواعي بـnull»؟
أدرج مجموعة داخل أخرى مباشرة تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «Spread وSpread الواعي بـnull»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- عامل Cascade (..)
- Cascades المختصرة عند null (?..)
- Spread وSpread الواعي بـnull
- if وfor في المجموعات