0Pricing
Dart Academy · درس

التكرار على المدخلات والمفاتيح والقيم

كرّر على Map واستخدم putIfAbsent

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

التكرار على Map

قد تحتاج أحيانًا إلى المرور على كل زوج في Map. توفر لك Dart عدة طرق واضحة للتكرار عليها. 🚶

المفاتيح فقط

تمنحك الخاصية keys كائنًا قابلًا للتكرار يحتوي على كل مفتاح. استخدمها في حلقة عندما تكون مهتمًا بالمسميات فقط.

var m = {'a': 1, 'b': 2};
for (var k in m.keys) {
  print(k);
}

القيم فقط

تمنحك الخاصية values كائنًا قابلًا للتكرار يحتوي على كل قيمة، مع تجاهل المفاتيح تمامًا.

var m = {'a': 1, 'b': 2};
for (var v in m.values) {
  print(v);
}

الأزواج باستخدام entries

تمنحك الخاصية entries كائنات MapEntry، لتتمكن من الوصول إلى المفتاح وقيمته معًا.

for (var e in m.entries) {
  print(e.key);
  print(e.value);
}

اختصار forEach

تمنحك طريقة forEach كل مفتاح وقيمة مباشرة، مما يجعل تنفيذ العمل على كل زوج واضحًا ومنظمًا.

m.forEach((key, value) {
  print('$key: $value');
});

التعرّف على putIfAbsent

استخدم putIfAbsent لتعيين مفتاح فقط عندما يكون مفقودًا. وتبقى المفاتيح الموجودة دون تغيير.

var m = {'a': 1};
m.putIfAbsent('b', () => 2);

لماذا يفيد putIfAbsent؟

لا تُشغَّل دالة القيمة في putIfAbsent إلا عند الحاجة، لذلك تتجنب العمل غير الضروري للمفاتيح الموجودة مسبقًا.

m.putIfAbsent('a', () => expensive());

تحديث قيمة

تغيّر طريقة update قيمة مفتاح موجود باستخدام دالة، وهي مناسبة جدًا للعدادات وحساب الإجماليات.

var counts = {'a': 1};
counts.update('a', (v) => v + 1);

update مع قيمة بديلة

مرّر ifAbsent إلى update حتى يحصل المفتاح الجديد على قيمة ابتدائية بدلًا من حدوث خطأ.

counts.update('z', (v) => v + 1,
  ifAbsent: () => 1);

إعادة التشكيل باستخدام map

تحوّل طريقة map كل إدخال إلى زوج جديد، وتُرجع خريطة جديدة دون تعديل الخريطة الأصلية.

var doubled = m.map((k, v) =>
  MapEntry(k, v * 2));

الترتيب هو ترتيب الإدراج

تتذكر Map الافتراضية ترتيب إدراج المفاتيح، لذلك تزور الحلقات الأزواج بالترتيب نفسه الموثوق.

تحقق سريع

أي خاصية تمنحك المفتاح والقيمة معًا في حلقة واحدة؟

مراجعة

أحسنت! كرّر باستخدام keys أو values أو entries، واستعن بـ putIfAbsent وupdate لإدارة الأزواج بذكاء. 🎉

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

هل درس «التكرار على المدخلات والمفاتيح والقيم» مجاني؟

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

ماذا ستتعلم في «التكرار على المدخلات والمفاتيح والقيم»؟

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

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

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

كم من الوقت يستغرق درس «التكرار على المدخلات والمفاتيح والقيم»؟

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

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

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

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

  1. المجموعات وضمان التفرد
  2. عمليات المجموعات: union وintersection وdifference
  3. Maps كمخازن للمفاتيح والقيم
  4. التكرار على المدخلات والمفاتيح والقيم
← العودة إلى Dart Academy