Dart Academy · درس

المجموعات العامة عمليًا

استخدم الأنواع List وMap والحاويات المخصصة

الدرس 4 من 413 خطوة

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

المجموعات أنواع عامة

جميع مجموعات Dart الشائعة أنواع عامة. فكل من List وSet وMap يقبل معلمات أنواع تحدد نوع القيم التي يحتويها. 📦

تحديد نوع List

تقبل List معلمة نوع واحدة لعناصرها. ويعني إعلان List of String أن كل عنصر يجب أن يكون من النوع String.

List<String> names = ['Ada', 'Linus'];

تحديد نوع Set

تعمل Set بالطريقة نفسها، مع الحفاظ على تفرد العناصر. وتحتوي Set of int على أعداد صحيحة من دون تكرار.

Set<int> ids = {1, 2, 2, 3};

تحديد نوع Map

تقبل Map معلمتي نوع: واحدة للمفاتيح وأخرى للقيم. والترتيب مهم، إذ يُذكر نوع المفتاح أولًا.

Map<String, int> ages = {'Ada': 36};

الاستدلال من القيم الحرفية

عند كتابة قيمة حرفية، يستنتج Dart غالبًا النوع من محتواها. فتصبح قائمة الأعداد List of int تلقائيًا.

var scores = [90, 85, 100];

حددوا أنواع القيم الحرفية الفارغة

لا تحتوي القيمة الحرفية الفارغة على شيء يمكن الاستدلال منه، لذا أضيفوا النوع بأنفسكم. وإلا فقد يخمّن Dart نوعًا لا تريدونه.

var queue = <String>[];

تنتقل أنواع العناصر عبر العمليات

بعد تحديد النوع، تعيد الأساليب نوع العنصر الصحيح. فالقراءة من List of String تعطيكم قيمة String جاهزة للاستخدام مباشرةً.

List<String> names = ['Ada'];
String first = names.first;

تداخل الأنواع العامة

يمكن لمعلمات الأنواع أن تتداخل بالعمق الذي تحتاجونه. ويُعد Map from String to List of int صالحًا تمامًا ويخضع للتحقق الكامل.

Map<String, List<int>> grades = {
  'Ada': [90, 85]
};

الأنواع العامة مع التحويلات

تحمل أساليب مثل map الأنواع عبر سلسلة العمليات. ويؤدي تحويل int إلى قيمها النصية إلى Iterable of String.

var labels = [1, 2].map((n) => 'n=$n');

حاويات عامة مخصصة

تندمج أصنافكم العامة الخاصة في هذا العالم أيضًا. ويمكن لـ Stack of T تخزين أي نوع من العناصر يختاره المستدعي.

class Stack<T> {
  final _items = <T>[];
  void push(T x) => _items.add(x);
}

السلامة من البداية إلى النهاية

من الإعلان إلى التحويل ثم التخزين، يظل النوع معروفًا. وهذه هي الفائدة: إعادة الاستخدام والتحقق الكامل في جميع المراحل.

تحقق سريع

كم معلمة نوع تقبل Map؟

مراجعة

حددتم أنواع List وSet وMap، واعتمدتم على الاستدلال، وحددتم أنواع القيم الحرفية الفارغة، واستخدمتم الأنواع العامة المتداخلة. وتنتقل الأنواع بأمان عبر كل عملية تحويل. ✅

البدء مجانًا

تعلم Dart مع معلم ذكاء اصطناعي — مجانًا

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

الدورات
30
الدروس
120

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

هل درس «المجموعات العامة عمليًا» مجاني؟

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

ماذا ستتعلم في «المجموعات العامة عمليًا»؟

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

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

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

كم من الوقت يستغرق درس «المجموعات العامة عمليًا»؟

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

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

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

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

  1. لماذا تتفوق Generics على dynamic
  2. الفئات والطرق العامة
  3. معاملات الأنواع المقيّدة باستخدام extends
  4. المجموعات العامة عمليًا
← العودة إلى Dart Academy