0Pricing
Dart Academy · درس

قوائم التهيئة وإعادة التوجيه

عيّن finals وأعد استخدام البنّاءات

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

تعيين الحقول final

يجب تعيين حقل final قبل تنفيذ جسم constructor. وتُعد قائمة التهيئة المكان المثالي لمنحه قيمته الوحيدة.

class Circle {
  final double area;
  Circle(double r) : area = 3.14 * r * r;
}

صيغة قائمة التهيئة

بعد قائمة المعاملات، أضف نقطتين ثم عمليات إسناد مفصولة بفواصل. تُنفَّذ initializer list هذه قبل جسم constructor.

Point(int x, int y) : x = x, y = y;

تُنفَّذ قبل الجسم

تحدث عمليات الإسناد في قائمة التهيئة أولًا، ثم يُنفَّذ الجسم. لذلك تكون الحقول التي عيّنتها في list جاهزة داخل الجسم مسبقًا.

class Box {
  final int n;
  Box(int v) : n = v {
    print(n); // available
  }
}

حساب القيم المشتقة

استخدم القائمة لحساب حقل من المعاملات، مثل الإجمالي أو التسمية، قبل أن يتمكن أي شيء من الوصول إلى object.

class Rect {
  final int area;
  Rect(int w, int h) : area = w * h;
}

عدة عمليات تهيئة

افصل عدة عمليات إسناد بفواصل. تضبط كل واحدة منها حقلًا مختلفًا ضمن initializer list واحدة.

Point(int a, int b) : x = a, y = b;

assert في قائمة التهيئة

يمكنك وضع assert في القائمة للتحقق من المدخلات أثناء التطوير، واكتشاف القيم غير الصحيحة قبل وجود الكائن.

Circle(double r) : assert(r > 0), area = 3.14 * r * r;

Constructors المُحيلة

يمكن لـ constructor إحالة العمل إلى آخر باستخدام this بعد النقطتين، بحيث يبقى الإعداد المشترك في مكان واحد.

class Point {
  int x, y;
  Point(this.x, this.y);
  Point.zero() : this(0, 0);
}

لماذا نستخدم الإحالة

تتجنب الإحالة تكرار عمليات إسناد الحقول. إذ تستدعي المسماةُ الرئيسيةَ فقط، مما يحافظ على منطقك وفق مبدأ DRY.

Point.origin() : this(0, 0);

تبقى أجسام Constructors المُحيلة فارغة

لا يملك constructor المُحيل جسمًا. فهو يمرر العمل فقط إلى الهدف باستخدام this(...)، الذي ينفذ العمل الفعلي كله.

class User {
  String name;
  User(this.name);
  User.anon() : this("anon");
}

ترتيب العمليات

تذكر التسلسل: تُنفَّذ قائمة التهيئة وأي إحالة أولًا، ثم الجسم. عيّن finals في القائمة، ونفّذ الأعمال الإضافية في الجسم.

قائمة التهيئة مقابل الجسم

استخدم القائمة لإسناد الحقول، وخاصة finals؛ واستخدم body للمنطق، مثل الطباعة أو التحقق الإضافي بعد assert أو استدعاء الدوال.

تحقق سريع

تحقق سريع من قوائم التهيئة.

مراجعة: التهيئة والإحالة

يمكنك الآن استخدام initializer list لتعيين finals وحساب القيم، والتحقق باستخدام assert، وإحالة constructor إلى آخر باستخدام this. 🔀

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

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

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

ماذا ستتعلم في «قوائم التهيئة وإعادة التوجيه»؟

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

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

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

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

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

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

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

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

  1. البنّاءات الافتراضية والمعلَّمة بالمعاملات
  2. بنّاءات مسماة لوضوح القصد
  3. قوائم التهيئة وإعادة التوجيه
  4. بنّاءات factory وconst
← العودة إلى Dart Academy