التحويل باستخدام map وwhere وtoList
أعد تشكيل القوائم باستخدام طرق iterable
التحويل باستخدام map وwhere وtoList درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
إعادة تشكيل Lists
بدلًا من إنشاء الحلقات يدويًا، يتيح لك Dart تحويل Lists باستخدام طرق Iterable مرتبة. صف النتيجة، وسينشئها Dart. ✨
يحوّل map العناصر
تشغّل طريقة map دالة على كل عنصر، وتنتج تسلسلًا جديدًا من النتائج، مع إبقاء القائمة الأصلية دون تغيير.
var nums = [1, 2, 3];
var doubled = nums.map((n) => n * 2);تُرجع map قيمة Iterable
لاحظ أن map تُرجع Iterable وليس List. وهي كسولة، لذلك لا تُحسب أي قيمة حتى تقرأ القيم فعليًا.
يجعل toList النتيجة فعلية
حوّل أي iterable إلى قائمة فعلية باستخدام toList. فهذا يجبر العملية على التنفيذ ويمنحك قائمة يمكنك الوصول إلى عناصرها بالفهرس.
var result = nums.map((n) => n * 2).toList();تصفّي where العناصر
تُبقي طريقة where على العناصر التي تجتاز اختبارك فقط، وتتخلص من البقية. إنها أداة التصفية الأساسية لديك.
var evens = nums.where((n) => n.isEven);تسلسل map وwhere
اجمع الخطوات بسلاسة. تعمل where أولًا على التصفية، ثم تحوّل map العناصر، بحيث يُقرأ التعبير كجملة واضحة عن بياناتك.
var out = nums.where((n) => n > 1).map((n) => n * 10);اختم دائمًا باستخدام toList
بعد التسلسل، استدعِ toList لتثبيت النتيجة. إذا نسيت ذلك، فستحتفظ بـ iterable كسول يُعاد حسابه في كل مرة.
var finalList = out.toList();تبقى القوائم الأصلية آمنة
لا تغيّر هذه الطرق قائمة المصدر أبدًا؛ بل تُرجع بيانات جديدة. تظل nums الأصلية كما بدأت تمامًا.
print(nums); // [1, 2, 3]تغيير النوع
يمكن لـmap تغيير الأنواع بالكامل. هنا تتحول قائمة من الأرقام إلى قائمة من تسميات String في خطوة واحدة واضحة.
var labels = nums.map((n) => 'item $n').toList();يُستخدم expand للتسطيح
استخدم expand عندما يتحول كل عنصر إلى عدة عناصر. فهي تطبق التحويل ثم تسطّح الأجزاء في تسلسل واحد متصل.
var pairs = nums.expand((n) => [n, n]).toList();تحويلات سريعة
تشمل أدوات الإنهاء المفيدة الأخرى join لضم العناصر في سلسلة نصية واحدة، وهو مثالي لعرض قائمة للمستخدم.
print(nums.join(', ')); // 1, 2, 3تحقق سريع
تسلسل map على قائمة، لكنك لم تستدعِ toList. ماذا تحصل؟
مراجعة
حوّلت Lists باحتراف: استخدمت map لتغيير العناصر، وwhere للتصفية، وtoList لإنهاء العملية. تتفوق مسارات المعالجة على الحلقات اليدوية في كل مرة. 🚀
الأسئلة الشائعة
هل درس «التحويل باستخدام map وwhere وtoList» مجاني؟
نعم — نص درس «التحويل باستخدام map وwhere وtoList» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «التحويل باستخدام map وwhere وtoList»؟
أعد تشكيل القوائم باستخدام طرق iterable تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «التحويل باستخدام map وwhere وtoList»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إنشاء القوائم والفهرسة
- إضافة العناصر وإزالتها وتحديثها
- البحث في القوائم وفرزها
- التحويل باستخدام map وwhere وtoList