الفئات والطرق العامة
اجعل أنواعك الخاصة معلّمة بالمعاملات
الفئات والطرق العامة درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
الأنواع العامة التي تنشئونها
الأنواع المضمّنة مثل List هي أنواع عامة، ويمكنكم كتابة أنواعكم الخاصة أيضًا. تتيح معلمة النوع للصنف التكيّف مع أي نوع يختاره المستدعي. 🧩
تسمية معلمة النوع
تضيفون معلمة النوع بين أقواس زاوية بعد اسم الصنف. والحرف T عنصر نائب شائع يمثل نوعًا فعليًا.
class Box<T> {
T value;
Box(this.value);
}استخدام T من الداخل
داخل الصنف، يتصرف T مثل أي اسم نوع. ويمكنكم استخدامه للحقول والمعلمات والقيم المعادة في جميع أجزاء جسم الصنف.
class Box<T> {
T value;
Box(this.value);
T get() => value;
}تحديد النوع
عند إنشاء الكائن، تختارون النوع الفعلي. هنا تصبح T مساويةً لـ int، ولذلك لا يمكن لهذا الصندوق أن يحتوي إلا على أعداد صحيحة.
var b = Box<int>(42);
int n = b.get();دعوا Dart يستنتجه
غالبًا يمكنكم حذف النوع الصريح لأن Dart يستنتجه من الوسيط. يرى الاستدلال قيمةً من النوع String ويحدد T نيابةً عنكم.
var b = Box('hi');معلمات أنواع متعددة
يمكن للصنف قبول أكثر من معلمة نوع واحدة، مع الفصل بينها بفواصل. ومن الأمثلة الشائعة زوج يحتوي على نوعين مختلفين.
class Pair<A, B> {
A first;
B second;
Pair(this.first, this.second);
}الأساليب العامة
يمكنكم أيضًا جعل أسلوب واحد عامًا، حتى داخل صنف غير عام. ضعوا معلمة النوع مباشرةً قبل قائمة المعلمات.
T firstOf<T>(List<T> items) => items[0];الأساليب تستنتج الأنواع أيضًا
يستنتج الأسلوب العام نوعه عادةً من الوسائط التي تمررونها إليه. استدعوه بالطريقة المعتادة، وسيتولى Dart الباقي.
var n = firstOf([1, 2, 3]);
var s = firstOf(['a', 'b']);عودة سلامة الأنواع
بما أن الأسلوب يتتبع T، تحافظ النتيجة على النوع الصحيح. يعيد firstOf في قائمة String قيمةً من النوع String، من دون الحاجة إلى تحويل.
String x = firstOf(['a', 'b']);إعادة استخدام بلا تكرار
يستبدل تعريف عام واحد نسخًا عديدة ناتجة عن النسخ واللصق. تكتبون المنطق مرةً واحدة، ويخدم int وString وأي نوع مخصص بالطريقة نفسها.
اختاروا أسماء واضحة
الحروف المفردة مثل T وE وK شائعة، لكن الاسم الوصفي قد يكون أكثر فائدة. الوضوح أهم من الإيجاز في الشفرة المعقدة.
تحقق سريع
أين توضع معلمة النوع في الصنف؟
مراجعة
تعلّمتم إضافة معلمة نوع مثل T إلى أصنافكم وأساليبكم. يملأها Dart، غالبًا بالاستدلال، مع الحفاظ على قابلية إعادة الاستخدام وسلامة الشفرة. ✅
الأسئلة الشائعة
هل درس «الفئات والطرق العامة» مجاني؟
نعم — نص درس «الفئات والطرق العامة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «الفئات والطرق العامة»؟
اجعل أنواعك الخاصة معلّمة بالمعاملات تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «الفئات والطرق العامة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- لماذا تتفوق Generics على dynamic
- الفئات والطرق العامة
- معاملات الأنواع المقيّدة باستخدام extends
- المجموعات العامة عمليًا