Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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

جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 51 من 78.

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

يمكنك تعيين قيمة افتراضية باستخدام = في تعريف الدالة:

greet <- function(name = "Guest") {
  print(paste("Hello,", name))
}

greet()
greet("Alice")

المخرجات:

[1] "Hello, Guest"
[1] "Hello, Alice"

عند استدعائها بدون وسيط، تستخدم الدالة "Guest" كقيمة افتراضية. عندما تقدم قيمة، فإنها تتجاوز القيمة الافتراضية.

يمكنك المزج بين المعلمات المطلوبة والاختيارية. يجب أن تأتي المعلمات ذات القيم الافتراضية بعد تلك التي لا تحتوي عليها:

calculate_total <- function(price, tax_rate = 0.1) {
  return(price + (price * tax_rate))
}

print(calculate_total(100))
print(calculate_total(100, 0.2))

المخرجات:

[1] 110
[1] 120

هنا، price مطلوب بينما تكون القيمة الافتراضية لـ tax_rate هي 10%. هذا يجعل الدوال الخاصة بك مرنة - سهلة الاستخدام في الحالات الشائعة، ولكن قابلة للتخصيص عند الحاجة.

challenge icon

التحدي

سهل

قم بإنشاء دالة تسمى calculate_shipping تأخذ وسيطين:

  • weight - وزن الطرد (مطلوب)
  • rate - التكلفة لكل وحدة وزن (اختياري، القيمة الافتراضية هي 5)

يجب أن تعيد الدالة تكلفة الشحن، المحسوبة كـ weight * rate.

ستتلقى سطرين من المدخلات:

  1. قيمة الوزن
  2. إما قيمة المعدل (rate) أو كلمة default

إذا كان الإدخال الثاني هو default، فاستدعِ الدالة بالوزن فقط (باستخدام المعدل الافتراضي). بخلاف ذلك، استدعِ الدالة بكل من الوزن والمعدل المقدم.

اطبع النتيجة المعادة.

على سبيل المثال، إذا كانت المدخلات هي:

10
default

يجب أن يكون المخرج:

[1] 50

إذا كانت المدخلات هي:

10
3

يجب أن يكون المخرج:

[1] 30

ورقة مرجعية

يمكنك تعيين قيم المعلمات الافتراضية في دالة باستخدام = في تعريف الدالة:

greet <- function(name = "Guest") {
  print(paste("Hello,", name))
}

greet()           # يستخدم الافتراضي: "Hello, Guest"
greet("Alice")    # يتجاوز الافتراضي: "Hello, Alice"

عند المزج بين المعلمات المطلوبة والاختيارية، ضع المعلمات ذات القيم الافتراضية بعد تلك التي ليس لها قيم افتراضية:

calculate_total <- function(price, tax_rate = 0.1) {
  return(price + (price * tax_rate))
}

calculate_total(100)       # يستخدم tax_rate الافتراضي: 110
calculate_total(100, 0.2)  # tax_rate مخصص: 120

جرّب بنفسك

# قراءة المدخلات
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: اكتب كودك أدناه
# 1. قم بتعريف الدالة calculate_shipping مع الوزن weight (مطلوب) والمعدل rate (اختياري، القيمة الافتراضية = 5)
# 2. تحقق مما إذا كان rate_input هو "default" أو رقماً
# 3. استدعِ الدالة بشكل مناسب واطبع النتيجة
quiz iconاختبر نفسك

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

جميع دروس Fundamentals