for-in على المجموعات
مرّ على كل عنصر من دون فهرس
for-in على المجموعات درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
تخطَّ الفهرس
غالبًا ما تريد كل عنصر فحسب، لا موضعه. تمنحك حلقة for-in العناصر واحدًا تلو الآخر دون الحاجة إلى إدارة عدّاد. ✨
بنية for-in
اكتب for، ثم اسم متغير، ثم الكلمة المفتاحية in، ثم مجموعتك. وفي كل تكرار يرتبط المتغير بالعنصر التالي.
for (var item in items) {
print(item);
}التكرار على قائمة
وجّه for-in إلى List، فستزور كل عنصر بالترتيب من البداية إلى النهاية، دون التعامل مع length أو الأقواس.
var fruits = ['apple', 'pear'];
for (var f in fruits) {
print(f);
}أنظف من استخدام الفهرس
مقارنةً بحلقة for التقليدية، تلغي for-in العدّاد والتحقق من الطول والوصول إلى العنصر باستخدام الأقواس. الشيفرة الأقل تعني أخطاء أقل.
for (var f in fruits) {
print(f);
}متغير حلقة محدد النوع
يمكنك تسمية النوع بدلًا من var لمزيد من الوضوح. هنا يكون كل عنصر من النوع String صراحةً أثناء مرور الحلقة على القائمة.
for (String name in names) {
print(name);
}التكرار على Set
يعمل Set مع for-in أيضًا. وستحصل على كل قيمة فريدة مرة واحدة، لكن الترتيب غير مضمون كما هو الحال في القائمة.
var ids = {1, 2, 3};
for (var id in ids) {
print(id);
}أي Iterable
تعمل for-in مع أي Iterable، وليس مع القوائم والمجموعات فقط. ويشمل ذلك النطاقات ومفاتيح Map ونتائج map أو where.
for (var k in scores.keys) {
print(k);
}التكرار على إدخالات Map
للتكرار على Map، مرّر على entries الخاصة بها. إذ يوفّر كل إدخال مفتاحًا وقيمة يمكنك قراءتهما معًا في تكرار واحد.
for (var e in scores.entries) {
print('${e.key}: ${e.value}');
}للقراءة فقط عادةً
تعامل مع متغير الحلقة باعتباره نسخة من كل قيمة. إعادة إسناد قيمة إليه لا تغيّر عنصر المجموعة الأصلي.
for (var n in nums) {
n = n * 2; // does not change nums
}لا تعدّل أثناء التكرار
تؤدي إضافة عناصر إلى مجموعة أو حذفها منها أثناء for-in إلى حدوث خطأ. أنشئ قائمة جديدة بدلًا من ذلك، أو كرر على نسخة.
for (var x in list) {
// list.add(x); // throws!
}بديل forEach
تنفّذ طريقة forEach المهمة نفسها باستخدام callback. وتكون for-in أوضح عادةً، كما أنها تدعم break وcontinue.
fruits.forEach((f) => print(f));تحقق سريع
تريد طباعة كل قيمة في List دون إدارة فهرس. ما الخيار الأنظف؟
مراجعة
تعلمت حلقة for-in: زيارة كل عنصر في أي Iterable دون عدّاد. كرر على القوائم والمجموعات وإدخالات Map بسهولة. 🎯
الأسئلة الشائعة
هل درس «for-in على المجموعات» مجاني؟
نعم — نص درس «for-in على المجموعات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «for-in على المجموعات»؟
مرّ على كل عنصر من دون فهرس تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «for-in على المجموعات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- حلقة for التقليدية
- حلقتا while وdo-while
- for-in على المجموعات
- break وcontinue والتسميات