الفصل 14 — البرمجة الوظيفية على المجموعات
الجزء 1A — تعلّم Dart · الفصل 14 من 62 · 6 ساعات
الفصل 14 — البرمجة الوظيفية على المجموعات
المستوى: متوسط المدة المقدّرة: 6 ساعات المتطلبات المسبقة: الفصل 05 (الحلقات التكرارية)، الفصل 06 (المجموعات)، الفصل 07 (الدوال)، الفصل 13 (الاستثناءات) ما ستتمكن من فعله في نهاية الفصل: تحويل أي قائمة من اللاعبين أو الأعداء أو عناصر المخزون وتصفيتها وترتيبها وتلخيصها في بضعة أسطر تصريحية، دون كتابة أي حلقة
for.
14.0 — أهداف الفصل
في نهاية هذا الفصل، ستكون قادرًا على:
- التمييز بين الأسلوب الأمري (كيف تنفّذ) والأسلوب التصريحي (ماذا تريد أن تحصل عليه)؛
- كتابة دالة مجهولة ودالة سهمية لتمريرهما إلى إحدى الطرق؛
- المرور على مجموعة باستخدام
forEach()؛ - تحويل مجموعة باستخدام
map()، بما في ذلك تغيير النوع؛ - شرح ما هو
Iterableولماذا يكون استدعاءtoList()إلزاميًا في كثير من الأحيان؛ - تصفية مجموعة باستخدام
where()؛ - البحث عن عنصر باستخدام
firstWhere()وlastWhere()وsingleWhere()وindexWhere()؛ - الإجابة عن سؤال بنعم أو لا باستخدام
any()وevery()وcontains()؛ - اختزال مجموعة إلى قيمة واحدة باستخدام
reduce()وfold()؛ - الاختيار بين
reduce()وfold()عن دراية؛ - ترتيب قائمة باستخدام
sort()وكتابة دالة مقارنة؛ - استخدام
compareTo()مع الأعداد والنصوص؛ - ترتيب الكائنات حسب النتيجة، ثم حسب الاسم، ثم حسب عدة معايير؛
- ترتيب نسخة دون تعديل القائمة الأصلية؛
- تقطيع مجموعة باستخدام
take()وskip()؛ - تسطيح القوائم المتداخلة باستخدام
expand()؛ - إزالة التكرارات باستخدام
toSet()؛ - تجميع مجموعة في نص باستخدام
join()؛ - استخدام عامل الانتشار
...ونسخته القابلة لـ null:...?؛ - كتابة
ifوforمباشرةً داخل قائمة حرفية؛ - ربط عدة عمليات في تعبير واحد مقروء؛
- تحديد متى يكون من الأفضل العودة إلى حلقة
for، وذلك بمعايير واضحة.
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش