Dart Academy · درس

الدوال كقيم من الدرجة الأولى

مرّر الدوال وأعدها كما تمرّر البيانات

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

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

الدوال قيم

في Dart، الدالة قيمة first-class، مثلها مثل الرقم أو النص. يمكنك تخزينها وتمريرها وإرجاعها. 🎁

تخزين دالة

أسند دالة إلى متغير باستخدام اسمها دون أقواس. ويشير variable الآن إلى الدالة نفسها.

int triple(int x) => x * 3;
var f = triple;
f(4); // 12

نوع الدالة

لكل دالة type يصف مدخلاتها ومخرجاتها. ويمكنك تسميته باستخدام الكلمة المفتاحية Function لمزيد من الوضوح.

int Function(int) op = triple;

تمرير دالة

يمكن أن تكون الدالة parameter لدالة أخرى. وتستدعيها الدالة المستقبِلة لاحقًا لتخصيص السلوك دون إعادة كتابة الشيفرة.

int apply(int x, int Function(int) fn) {
  return fn(x);
}

الدوال من الرتبة العليا

الدالة التي تستقبل دالة أخرى أو تُرجعها هي دالة higher-order. وهي أساس لبنات بناء مرنة وقابلة لإعادة الاستخدام.

apply(5, triple); // 15

تطبيق callbacks

يُسمى تمرير دالة لتعمل لاحقًا callback. وتعتمد طرق المجموعات مثل forEach على هذا النمط باستمرار.

[1, 2, 3].forEach(print);

إرجاع دالة

يمكن للدالة إنشاء دالة أخرى وإرجاعها. بل يمكن للدالة returned أن تتذكر القيم من السياق الذي أُنشئت فيه.

Function adder(int n) {
  return (int x) => x + n;
}

استخدام الدالة المُرجعة

استدعِ الدالة المُنشئة، وخزّن نتيجتها، ثم استدعِ تلك النتيجة. وتحافظ كل closure على قيمة الالتقاط الخاصة بها.

var add5 = adder(5);
add5(10); // 15

الدوال داخل المجموعات

بما أن الدوال قيم، يمكنك تخزين عدة دوال في list أو map واختيار إحداها لتشغيلها أثناء التنفيذ.

var ops = [triple, add5];
ops[0](2); // 6

إجراء التحويل باستخدام الدوال

تقبل طرق مثل map دالة وتطبقها على كل عنصر. ويحوّل ذلك التحويل إلى value قابلة لإعادة الاستخدام يمكنك تمريرها.

[1, 2, 3].map(triple).toList(); // [3, 6, 9]

لماذا يهم ذلك؟

تتيح لك الدوال من الدرجة الأولى تخصيص السلوك بتمرير المنطق بدلًا من الأعلام. ويفتح ذلك المجال أمام composition نظيف في Dart وFlutter بأكملهما. ✨

تحقق سريع

لنرَ إن كنت قد استوعبت مفهوم الدوال من الدرجة الأولى.

مراجعة

يمكنك الآن تخزين الدوال وتمريرها وإرجاعها، وإنشاء مساعدات higher-order. وهذا هو أساس الأسلوب الوظيفي في Dart. 🎉

البدء مجانًا

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

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

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

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

هل درس «الدوال كقيم من الدرجة الأولى» مجاني؟

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

ماذا ستتعلم في «الدوال كقيم من الدرجة الأولى»؟

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

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

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

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

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

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

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

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

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