האופרטור הטרנרי
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Ruby של Coddy. שיעור 40 מתוך 56.
האופרטור הטרנרי הוא קיצור בשורה אחת ל־if/else שמחזיר ערך. התחביר הוא condition ? value_if_true : value_if_false.
age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status # Eligibleזה כמו לכתוב:
status = if age >= 18
"Eligible"
else
"Not Eligible"
endהשתמשו באופרטור הטרנרי כששני הענפים מחזירים ערכים קצרים. אם אחד הענפים דורש יותר מביטוי אחד, חזרו להשתמש ב־if/else רגיל: דחיסת יותר מדי תוכן לאופרטור טרנרי מקשה על הקריאה.
אפשר להשתמש בו ישירות בתוך ביטויים אחרים, כולל אינטרפולציה:
count = 1
puts "#{count} item#{count == 1 ? "" : "s"}" # 1 פריט
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}" # 5 פריטיםאתגר
קלקרא מספר שלם n מהקלט. באמצעות האופרטור הטרנרי (ללא בלוקים של if/else), הדפס בדיוק:
<n> is <label>כאשר label הוא:
positiveכאשרn > 0negativeכאשרn < 0zeroכאשרn == 0
רמז: השתמש באופרטור טרנרי מקונן, condition ? a : (other_condition ? b : c).
עבור הקלט 5 הפלט הוא 5 is positive. עבור 0 הפלט הוא 0 is zero.
נסו בעצמכם
n = gets.to_i
# TODO: השתמשו בביטוי תנאי מקוצר כדי ליצור את התווית, ואז ב-puts
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מחרוזות לעומק
סקירה של מתודות למחרוזותאינטרפולציה של מחרוזותמעבר על מחרוזותפיצול וחיבורסיכום – שוזר המחרוזות4בלוקים, Procs ו־Lambdas
מהו בלוק?do..end לעומת סוגריים מסולסליםמילת המפתח yieldפרמטרים של בלוקProcs ו־Lambdasסיכום – איטרטור מותאם אישית7Hashes חלק 2
Hash.new עם ערכי ברירת מחדלמעבר על HashesHashes מקונניםמיזוג ושינויסיכום - מונה תדירויות10פרויקט - רשומות תלמידים
סקירת הפרויקטהוספת תלמיד5עוצמת Enumerable
Select ו־Rejectשרשור MapReduce / Injectcount, all?, any?, none?group_by ו־partitionsort_by, min_by, max_byסיכום - צינור נתונים8קבלת החלטות מתקדמת
case עם מחלקות ו־Regexwhen עם ערכים מרוביםהאופרטור הטרנריif / unless בשורה אחתסיכום – מסווג ציוניםתרגלו בעצמכם: קומפיילר Ruby אונליין