القيم الافتراضية للمعاملات
جزء من قسم Fundamentals في رحلة Dart على Coddy — الدرس 75 من 94.
قيم المعلمات الافتراضية تتيح لك تحديد قيم احتياطية لمعلمات الدالة التي لا يتم توفيرها عند استدعاء الدالة.
أنشئ دالة بقيمة افتراضية للمعلمة:
void greet(String name, [String greeting = 'Hello']) {
print('$greeting, $name!');
}
استدعِ الدالة مع وبدون المعامل الاختياري:
void main() {
greet('Dart');
greet('Dart', 'Welcome');
}
بعد تنفيذ الكود أعلاه، ستكون المخرجات:
Hello, Dart!
Welcome, Dart!يمكنك أيضاً استخدام القيم الافتراضية مع المعلمات المسماة (named parameters):
void showInfo({required String name, int age = 30}) {
print('$name is $age years old');
}
void main() {
showInfo(name: 'Alex');
showInfo(name: 'Maya', age: 25);
}
بعد تنفيذ الكود أعلاه، ستكون المخرجات:
Alex is 30 years old
Maya is 25 years oldالتحدي
مبتدئفي هذا التحدي، ستتدرب على استخدام القيم الافتراضية للمعاملات (default parameter values) في دوال Dart. تسمح لك القيم الافتراضية للمعاملات بتحديد قيمة سيتم استخدامها إذا لم يتم توفير المعامل عند استدعاء الدالة.
أكمل دالة greet عن طريق إضافة قيمة افتراضية هي "Hello" للمعامل greeting.
المخرجات المتوقعة:
Hello, Alice!
Welcome, Bob!ورقة مرجعية
توفر قيم المعلمات الافتراضية قيمًا بديلة لمعلمات الدالة في حال عدم توفيرها عند استدعاء الدالة.
بالنسبة للمعلمات الموضعية الاختيارية، استخدم الأقواس المربعة مع القيم الافتراضية:
void greet(String name, [String greeting = 'Hello']) {
print('$greeting, $name!');
}
greet('Dart'); // Hello, Dart!
greet('Dart', 'Welcome'); // Welcome, Dart!
بالنسبة للمعلمات المسماة، قم بتعيين القيم الافتراضية مباشرة:
void showInfo({required String name, int age = 30}) {
print('$name is $age years old');
}
showInfo(name: 'Alex'); // Alex is 30 years old
showInfo(name: 'Maya', age: 25); // Maya is 25 years old
جرّب بنفسك
void main() {
// هذه الأسماء معرفة مسبقاً لك
String name1 = 'Alice';
String name2 = 'Bob';
// TODO: قم باستدعاء دالة greet مرتين:
// 1. مرة واحدة مع name1 فقط (يجب أن تستخدم التحية الافتراضية)
// 2. مرة واحدة مع name2 والتحية "Welcome"
greet(name1);
greet(name2, "Welcome");
}
// TODO: قم بتعديل هذه الدالة لإضافة قيمة افتراضية "Hello" لمعامل greeting
void greet(String name, String greeting) {
print('$greeting, $name!');
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
معاملات المقارنةالمعامل المنطقي ANDالمعامل المنطقي ORالمعامل المنطقي NOTمعاملات فحص النوعملخص - إجراء المقارنات7التعامل مع النصوص (Strings)
دمج النصوص (String Concatenation)تضمين النصوص (String Interpolation)النصوص متعددة الأسطر (Multi-line Strings)خصائص النصوص (String Properties)دوال النصوص الأساسية (String Methods)10المجموعات - أساسيات الخرائط
ما هي الخرائط؟إنشاء خريطةالوصول إلى القيم عبر المفتاحأزواج المفتاح والقيمةالحصول على حجم الخريطةالحصول على المفاتيحالحصول على القيمالتحقق من وجود مفتاح2المتغيرات وأنواع البيانات الأساسية
ما هي المتغيرات؟النصوص (Strings)الأعداد الصحيحة (int)الأعداد العشرية (double)القيم المنطقية (bool)استنتاج النوع باستخدام 'var'المتغيرات النهائية (Final)المتغيرات الثابتة (Constant)قواعد التسميةأساسيات الـ Null Safetyملخص - التصريح عن المتغيرات8مسار التحكم - الحلقات التكرارية
حلقة 'for' التكراريةحلقة 'while' التكراريةحلقة 'do-while' التكراريةاستخدام 'break' في الحلقات التكراريةاستخدام 'continue' في الحلقات التكراريةملخص - تكرار الكود البرمجي3المعاملات - الجزء الأول
المعاملات الحسابيةالقسمة الصحيحةمعامل باقي القسمة (Modulo)الزيادة والنقصاناختصارات التعيينملخص - الحسابات البسيطة6تدفق التحكم - اتخاذ القرار
جملة 'if'جملة 'else'جملة 'else if'ملخص - القرارات البسيطةجمل 'if' المتداخلةجملة 'switch'9المجموعات - أساسيات القوائم
ما هي القوائم؟إنشاء قائمةالوصول عبر الفهرسالحصول على طول القائمةإضافة عناصرإزالة عناصرالتحقق مما إذا كانت القائمة فارغةالتكرار عبر القائمة12الدوال المتقدمة
المعاملات الموضعية الاختياريةالمعاملات المسماةالمعاملات المسماة المطلوبةالقيم الافتراضية للمعاملاتملخص - معاملات الدوال