Menu
Coddy logo textTech

ערכי ברירת מחדל לפרמטרים

חלק מהיחידה יסודות במסלול ה-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. ערך של תעריף או המילה default

אם הקלט השני הוא default, קראו לפונקציה עם המשקל בלבד (תוך שימוש בתעריף ברירת המחדל). אחרת, קראו לפונקציה עם המשקל ועם התעריף שסופק.

הדפיסו את התוצאה שהוחזרה.

לדוגמה, אם הקלט הוא:

10
default

הפלט צריך להיות:

[1] 50

אם הקלט הוא:

10
3

הפלט צריך להיות:

[1] 30

נסו בעצמכם

# קראו את הקלט
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בחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר R אונליין