ערכי ברירת מחדל של פרמטרים
חלק מהיחידה יסודות במסלול ה-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 בחזקת 3)כך המתודות נעשות גמישות יותר. הקוראים להן יכולים לספק רק את המידע החיוני, בעוד שפרטים אופציונליים מקבלים ערכי ברירת מחדל סבירים.
אתגר
קלהגדירו מתודה בשם 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 אונליין