Menu
CoddyTech

القيم الافتراضية للمعاملات

جزء من قسم الأساسيات في رحلة 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 تكعيب)

هذا يجعل الأساليب أكثر مرونة. يمكن للجهات المستدعية تقديم المعلومات الأساسية فقط، بينما تعود التفاصيل الاختيارية إلى القيم الافتراضية المناسبة.

challenge icon

التحدي

سهل

عرّف طريقة باسم multiply تأخذ وسيطين: a وb. يجب أن تكون القيمة الافتراضية للوسيط b هي 1. يجب أن تُرجع الطريقة حاصل ضرب a وb.

اقرأ عددين صحيحين من الإدخال:

  1. العدد الأول (سيكون متوفرًا دائمًا)
  2. العدد الثاني (قد يكون متوفرًا أو لا)

إذا تم توفير إدخال واحد فقط، فاستدعِ الطريقة باستخدام هذا الوسيط وحده (مع استخدام القيمة الافتراضية لـ 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
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم Ruby عبر الإنترنت