قيم المعاملات الافتراضية
جزء من قسم 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%. هذا يجعل الدوال الخاصة بك مرنة - سهلة الاستخدام في الحالات الشائعة، ولكن قابلة للتخصيص عند الحاجة.
التحدي
سهلقم بإنشاء دالة تسمى calculate_shipping تأخذ وسيطين:
weight- وزن الطرد (مطلوب)rate- التكلفة لكل وحدة وزن (اختياري، القيمة الافتراضية هي5)
يجب أن تعيد الدالة تكلفة الشحن، المحسوبة كـ weight * rate.
ستتلقى سطرين من المدخلات:
- قيمة الوزن
- إما قيمة المعدل (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. استدعِ الدالة بشكل مناسب واطبع النتيجةيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ