0Pricing
Dart Academy · درس

المعاملات الموضعية في مقابل المسماة

استدعِ الدوال باستخدام معاملات واضحة ومرتبة أو معنونة

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

طريقتان لتمرير الوسائط

توفر Dart أسلوبين للمعاملات: positional والمسمّاة. ويساعد اختيار الأسلوب المناسب على جعل استدعاءات الدوال أوضح وأقل عرضة لسوء الاستخدام.

المعاملات الموضعية

تُطابق المعاملات positional حسب الترتيب. فتملأ القيمة الأولى الخانة الأولى، والثانية الخانة الثانية، وهكذا.

int sub(int a, int b) {
  return a - b;
}
sub(10, 3); // 7

الترتيب مهم فعلًا

عند استخدام الوسائط الموضعية، يؤدي تبديل الترتيب إلى تغيير المعنى. فهنا يحدد order أي قيمة تقابل أي معامل، لذا توخَّ الحذر.

sub(3, 10); // -7, not 7

المعاملات المسمّاة

ضع المعاملات بين أقواس معقوفة لجعلها named. عندها يمررها المستدعون باستخدام تسمياتها، فلا يعود الترتيب مهمًا إطلاقًا.

void move({int x, int y}) {
  // ...
}

الاستدعاء باستخدام التسميات

عند استدعاء دالة ذات معاملات مسمّاة، اكتب كل label متبوعًا بنقطتين. وهذا يجعل الاستدعاء يبدو كأنه عبارة إنجليزية واضحة.

move(y: 5, x: 2);

الوسائط المسمّاة توضّح نفسها

تحوّل التسميات الاستدعاءات الغامضة إلى استدعاءات سهلة القراءة. إذ يرى القارئ فورًا معنى كل قيمة، مما يجعل الوسائط المسمّاة رائعة من حيث clarity. 📖

drawBox(width: 100, height: 50);

المعاملات المسمّاة اختيارية افتراضيًا

تكون المعاملات المسمّاة العادية optional، لذا يمكن للمستدعين تخطيها. وتملأ Dart القيم المتروكة بـ null ما لم تحدد خلاف ذلك.

void config({String? theme}) {}
config(); // theme is null

المعاملات الموضعية الاختيارية

تجعل الأقواس المربعة المعاملات الموضعية optional أيضًا. ويمكن حذف المعاملات الأخيرة، وتكون قيمتها الافتراضية null.

String tag(String name, [String? id]) {
  return id == null ? name : "$name#$id";
}

الجمع بين الأسلوبين

يمكنك البدء بمعاملات positional مطلوبة، ثم إضافة معاملات مسمّاة بين الأقواس المعقوفة. تأتي القيم المطلوبة أولًا، وتبقى البقية مرنة.

void log(String msg, {bool loud = false}) {}

متى تختار كل أسلوب؟

استخدم positional لمدخل أو مدخلين واضحين. واستعن بالمعاملات المسمّاة عندما يحتوي الاستدعاء على قيم كثيرة أو قيم منطقية تحتاج إلى تسميات.

تجنب فخاخ القيم المنطقية

لا تخبر true المجردة في الاستدعاء القارئ بأي شيء. أما المعامل named مثل animate: true فيوضح القصد تمامًا. ✅

show(animate: true);

تحقق سريع

حان وقت التحقق من استيعابك لأساليب المعاملات.

مراجعة

يمكنك الآن اختيار positional للاستدعاءات القصيرة، والمسمّاة للاستدعاءات الواضحة، بل ويمكنك الجمع بينهما. الاستدعاءات الواضحة تعني أخطاء أقل. 🎯

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

هل درس «المعاملات الموضعية في مقابل المسماة» مجاني؟

نعم — نص درس «المعاملات الموضعية في مقابل المسماة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

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

  1. التصريح بالدوال وأنواع الإرجاع
  2. المعاملات الموضعية في مقابل المسماة
  3. القيم الافتراضية وrequired
  4. الدوال كقيم من الدرجة الأولى
← العودة إلى Dart Academy