القيم الافتراضية للمعاملات
جزء من قسم الأساسيات في رحلة Ruby على Coddy. الدرس 53 من 88.
أحيانًا تريد أن تكون للطريقة قيمة احتياطية منطقية عندما لا يتم توفير وسيطة. تتيح لك قيم المعلمات الافتراضية تحديد القيمة التي ينبغي أن تكون للمعلمة إذا لم يحددها المستدعي.
لتعيين قيمة افتراضية، استخدم علامة = بعد اسم المَعلمة:
def greet(name = "friend")
puts "Hello, #{name}!"
end
greet("Alice") # المخرجات: Hello, Alice!
greet # المخرجات: Hello, friend!عندما تستدعي greet دون وسيطة، تستخدم Ruby القيمة "friend" كقيمة افتراضية. وعندما تقدّم وسيطة، فإنها تتجاوز القيمة الافتراضية.
يمكنك مزج المعاملات العادية مع المعاملات الافتراضية، لكن يجب أن تأتي المعاملات ذات القيم الافتراضية بعد تلك التي لا تحتوي عليها:
def power(base, exponent = 2)
base ** exponent
end
puts power(5) # المخرجات: 25 (5 مربعاً)
puts power(2, 3) # المخرجات: 8 (2 مكعباً)هذا يجعل الأساليب أكثر مرونة. يمكن للمتصلين توفير المعلومات الأساسية فقط، بينما تعود التفاصيل الاختيارية إلى قيم افتراضية معقولة.
التحدي
سهلعرّف method تُسمّى multiply وتأخذ parameterين: a وb. يجب أن تكون قيمة b الافتراضية هي 1. يجب أن تُرجع method حاصل ضرب a وb.
اقرأ عددين صحيحين من input:
- العدد الأول (سيُوفَّر دائمًا)
- العدد الثاني (قد يُوفَّر أو لا يُوفَّر)
إذا تم توفير input واحد فقط، فاستدعِ method باستخدام ذلك الوسيط فقط (مع استخدام القيمة default لـ b). وإذا تم توفير inputين، فاستدعِ method باستخدام كلا الوسيطين.
اطبع result الخاص باستدعاء method.
سيكون تنسيق input كما يلي:
- السطر الأول: العدد الأول
- السطر الثاني: إما عدد أو الكلمة
none
على سبيل المثال، إذا كانت قيمتا input هما 7 و3:
21إذا كانت قيمتا input هما 5 وnone:
5إذا كانت قيمتا input هما 12 و4:
48جرّب بنفسك
# اقرأ الإدخال
a = gets.chomp.to_i
b_input = gets.chomp
# TODO: عرّف الدالة multiply مع المعامل b بقيمة افتراضية تساوي 1
# TODO: استدعِ الدالة بشكل مناسب بناءً على ما إذا كان b_input هو "none" أو رقماً
# إذا كان b_input هو "none"، استدعِ multiply مع a فقط
# إذا كان b_input رقماً، استدعِ multiply مع كل من a و b
# اطبع النتيجة
puts resultيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعاملات المنطقية - الجزء الرابع7حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على مدخلات المستخدم2المتغيرات وأنواع البيانات
الأرقام والمتغيراتنوع البيانات Stringنوع البيانات Booleanنوع البيانات Symbolالتحقق من أنواع البياناتقواعد التسميةملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة For مع النطاقاتحلقة WhileBreakNextمراجعة - المضروب (Factorial)حلقة Timesحلقة Untilالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةاختصارات العمليات الحسابيةمراجعة - العمليات الرياضية البسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
الإخراج باستخدام putsالإخراج باستخدام print و pالإخراج باستخدام المتغيراتالإدخال باستخدام getsدالة Chompتحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ9الدوال (Methods)
تعريف الدالةمعاملات الدالةقيم الإرجاعمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية للمعاملاتتدرّب بنفسك: مترجم Ruby عبر الإنترنت