טיפ רובי: אופרטור חללית עובד גם על מערכים
09/11/2025
אופרטור חללית הוא אחד האופרטורים החמודים של שפות תכנות. הוא גלגול של פונקציית strcmp עוד משפת C ותפקידו לקבל שני דברים ולהחזיר מה גדול יותר. מה שיפה בחללית הוא ערך ההחזר - 1 אם הדבר הראשון גדול יותר, 0 אם הם שווים ו -1 אם הערך השני גדול יותר. והוא נקרא חללית בגלל איך שהוא נראה.
הנה כמה דוגמאות על מספרים:
3.3.5 :004 > 2 <=> 3
=> -1
3.3.5 :005 > 3 <=> 3
=> 0
3.3.5 :006 > 5 <=> 3
=> 1
ועל מחרוזות:
3.3.5 :011 > 'a' <=> 'b'
=> -1
3.3.5 :012 > 'b' <=> 'b'
=> 0
3.3.5 :013 > 'c' <=> 'b'
=> 1
במחרוזות "גדול מ..." אומר שהדבר נמצא אחרי הדבר השני בסדר מילוני.
ועכשיו לחלק הכיפי - מסתבר שהחללית עובדת גם עם מערכים. כשמשווים מערכים רובי ישווה אותם איבר איבר. כך נוכל לכתוב:
3.3.5 :019 > [1, 2, 3] <=> [1, 5, 3]
=> -1
וזה מעולה כשיש לי כמה משתנים להשוות במכה אחת לדוגמה כשמשווים מספרי גירסה:
3.3.5 :023 > [major, minor, build] <=> [10, 4, 2]
=> 0
נ.ב. לפי ChatGPT אופרטור החללית עובדת בדיוק באותו אופן על מערכים גם ב PHP, C++, Groovy ו Elixir. בקלוז'ר הפונקציה compare אימצה את ההתנהגות וגם היא מטפלת במערכים באותה צורה.