المعاملات المسماة المطلوبة
جزء من قسم Fundamentals في رحلة Dart على Coddy — الدرس 74 من 94.
الكلمة الأساسية required تجبر على توفير المعلمات المسماة (named parameters) عند استدعاء دالة. وبدونها، تكون المعلمات المسماة اختيارية افتراضيًا.
أنشئ دالة بمعاملات مسماة مطلوبة:
void createUser({required String name, required int age}) {
print('User created: $name, $age years old');
}
استدعِ الدالة مع جميع المعلمات المطلوبة:
void main() {
createUser(name: 'Alex', age: 30);
}
بعد تنفيذ الكود أعلاه، ستكون المخرجات:
User created: Alex, 30 years oldإذا حاولت حذف معلمة مطلوبة، سيعرض Dart خطأً:
// سيؤدي هذا إلى حدوث خطأ:
// createUser(name: 'Alex'); // معلمة مطلوبة مفقودة 'age'
التحدي
مبتدئفي هذا التحدي، ستتدرب على استخدام الكلمة المفتاحية required مع المعلمات المسماة في Dart. تضمن الكلمة المفتاحية required وجوب توفير المعلمة المسماة عند استدعاء الدالة.
أكمل الدالة createUserProfile عن طريق إضافة الكلمة المفتاحية required لجعل كل من المعلمتين name و age مطلوبتين.
ورقة مرجعية
تُجبر الكلمة المفتاحية required على توفير المعاملات المسماة عند استدعاء دالة. وبدونها، تكون المعاملات المسماة اختيارية بشكل افتراضي.
أنشئ دالة بمعاملات مسماة مطلوبة:
void createUser({required String name, required int age}) {
print('User created: $name, $age years old');
}استدعِ الدالة بجميع المعاملات المطلوبة:
createUser(name: 'Alex', age: 30);سيؤدي حذف معامل مطلوب إلى حدوث خطأ في التجميع (compilation error).
جرّب بنفسك
void main() {
// استدعاء هذه الدالة معدّ مسبقاً لك
String profile = createUserProfile(name: 'Alice', age: 30);
print(profile);
// قم بإلغاء تعليق هذا السطر لترى ما يحدث عندما تكون المعاملات المطلوبة مفقودة
// String invalidProfile = createUserProfile(name: 'Bob');
}
// TODO: أضف الكلمة المفتاحية 'required' لجعل كلا المعاملين مطلوبين
String createUserProfile({String name, int age}) {
return 'User Profile: $name, $age years old';
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس 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الدوال المتقدمة
المعاملات الموضعية الاختياريةالمعاملات المسماةالمعاملات المسماة المطلوبةالقيم الافتراضية للمعاملاتملخص - معاملات الدوال