القيم الافتراضية للمعاملات
جزء من قسم الأساسيات في رحلة 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 تكعيب)هذا يجعل الأساليب أكثر مرونة. يمكن للجهات المستدعية تقديم المعلومات الأساسية فقط، بينما تعود التفاصيل الاختيارية إلى القيم الافتراضية المناسبة.
التحدي
سهلعرّف طريقة باسم multiply تأخذ وسيطين: a وb. يجب أن تكون القيمة الافتراضية للوسيط b هي 1. يجب أن تُرجع الطريقة حاصل ضرب a وb.
اقرأ عددين صحيحين من الإدخال:
- العدد الأول (سيكون متوفرًا دائمًا)
- العدد الثاني (قد يكون متوفرًا أو لا)
إذا تم توفير إدخال واحد فقط، فاستدعِ الطريقة باستخدام هذا الوسيط وحده (مع استخدام القيمة الافتراضية لـ b). وإذا تم توفير إدخالين، فاستدعِ الطريقة باستخدام الوسيطين معًا.
اطبع نتيجة استدعاء الطريقة.
سيكون تنسيق الإدخال كما يلي:
- السطر الأول: العدد الأول
- السطر الثاني: إما عدد أو الكلمة
none
على سبيل المثال، إذا كان الإدخالان هما 7 و3:
21إذا كان الإدخالان هما 5 وnone:
5إذا كان الإدخالان هما 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 عبر الإنترنت