0Pricing
Dart Academy · درس

if وfor في المجموعات

أنشئ القوائم بشروط وداخل حلقات

if وfor في المجموعات درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.

المنطق داخل Literals

أحيانًا تعتمد محتويات قائمة على شرط. يتيح لكم Dart وضع if مباشرةً داخل collection literal، لتنشئوها في موضع واحد.

Collection if

تضيف collection if عنصرًا فقط عندما يكون شرطه صحيحًا. وإذا لم يتحقق الشرط، فلا يضيف ذلك الموضع أي شيء.

var nav = ['Home', if (loggedIn) 'Profile'];

if مع else

يمكنكم إضافة else للاختيار بين عنصرين. ويُضاف أحدهما دائمًا إلى المجموعة، وليس كلاهما.

var tags = [if (vip) 'Gold' else 'Standard'];

لا حاجة إلى الأقواس المعقوفة

بخلاف if على مستوى التعليمة، لا تحتاج collection if إلى أقواس معقوفة أو فواصل منقوطة. فهي تنتج عنصرًا ولا تنفّذ كتلة.

Collection for

تنشئ collection for عناصرَ عبر التكرار داخل literal مباشرةً. وتضيف كل دورة ما ينتجه جسم الحلقة.

var doubled = [for (var n in nums) n * 2];

مثل map، ولكن داخلية

غالبًا ما تحل collection for محل استدعاء map عندما تكونون داخل literal أصلًا. وقد تكون أكثر مباشرةً في التحويلات البسيطة.

الخلط بين if وfor

يمكنكم combine بينهما: التكرار باستخدام for، ثم التصفية باستخدام if. وينشئان معًا قائمةً منظمة داخل literal تعبيرية واحدة.

var evens = [for (var n in nums) if (n.isEven) n];

تعمل خارج القوائم أيضًا

تعمل if وfor الخاصتان بالمجموعات أيضًا داخل Literals من نوع set وmap. وتتيح الصياغة الودية نفسها تشكيل أي نوع من أنواع المجموعات الثلاثة.

var m = {for (var u in users) u.id: u.name};

تتوافق مع Spread

يمكنكم خلط هذه الميزات مع spread operator. أدرجوا بعض العناصر، وانشروا مجموعة أخرى، وأضيفوا شروطًا، وكل ذلك داخل literal واحدة.

var x = [...base, if (extra) 'plus'];

لماذا تتفوق على الإنشاء لاحقًا

يحافظ إنشاء المجموعة مسبقًا على طابعها declarative. وتتجنبون إنشاء قائمة فارغة ثم الإضافة إليها باستخدام تعليمات منفصلة.

ممتازة لقوائم واجهة المستخدم

تتألق هذه الميزة في Flutter، حيث تعرض قائمة children غالبًا عناصر واجهة بشكل مشروط أو انطلاقًا من البيانات. وتظل literal واضحة وسهلة القراءة. 🧩

تحقق سريع

ماذا تفعل collection if عندما يكون شرطها خاطئًا ولا تُعطى else؟

مراجعة

تضيف if الخاصة بالمجموعات العناصر بشكل مشروط، بينما تنشئ for الخاصة بالمجموعات العناصر داخل حلقة، وذلك مباشرةً داخل Literals القوائم وset وmap. 🎯

الأسئلة الشائعة

هل درس «if وfor في المجموعات» مجاني؟

نعم — نص درس «if وfor في المجموعات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.

ماذا ستتعلم في «if وfor في المجموعات»؟

أنشئ القوائم بشروط وداخل حلقات تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟

لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «if وfor في المجموعات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟

نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. عامل Cascade (..)
  2. Cascades المختصرة عند null (?..)
  3. Spread وSpread الواعي بـnull
  4. if وfor في المجموعات
← العودة إلى Dart Academy