ערכי ברירת מחדל של פרמטרים
חלק מהיחידה יסודות במסלול ה-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אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3אופרטורים לוגיים חלק 42משתנים וטיפוסי נתונים
מספרים ומשתניםטיפוס הנתונים מחרוזתטיפוס הנתונים בוליאניטיפוס הנתונים Symbolבדיקת טיפוסי נתוניםמוסכמות שמותסיכום – יצירת משתנים8לולאות
לולאת for עם טווחיםלולאת whilebreaknextסיכום – עצרתלולאת timesלולאת untilלולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוקיצורי דרך אריתמטייםסיכום – חשבון פשוטאופרטורי השוואה6קלט ופלט בסיסיים
פלט באמצעות putsפלט באמצעות print ו־pפלט באמצעות משתניםקלט באמצעות getsשיטת Chompהמרת טיפוסיםחזרה — מחשבון גילחזרה — אמת או שקר9מתודות
הגדרת מתודהפרמטרים של מתודהערכי החזרהסיכום - מתודת Sigmaסיכום - מתודת האימותערכי ברירת מחדל של פרמטרים15מעקב אחר הוצאות יומיות
סקירת הפרויקטיציאה מהתוכניתתרגלו בעצמכם: קומפיילר Ruby אונליין