השוואת טיפוס נתונים ב Ruby עם case

אחד הדברים שמאוד מפתיעים אותי ברובי, הם שלפעמים מה שנראה מאוד ברור שיעבוד, עובד בצורה קצת שונה. לרוב הגיונית יותר, אבל לא כמו שאנחנו מצפים בד"כ.

עם case היה מאוד טבעי לעשות משהו כזה:

משום מה ההשווה במקרה הזה היא על הערך אבל לא על המחלקה.
הפתרון אבל הוא פשוט לא להשוות בצורה הזו, אלא בצורה הבאה:

 

* צריך תמיכה ב Javascript גם ב wordpress וגם ל gist על מנת לצפות בקוד.

4 מחשבות על “השוואת טיפוס נתונים ב Ruby עם case

  1. dani

    לא הבנתי למה זה הגיוני יותר a.class אמור להיות להיות type שיהיה אפשר להשוות אותו מול type-ים אחרים כמו בכל שפה.

    1. ik_5 מאת

      a אמור להיות משתנה. בד"כ אתה משתמש בו בשביל הערכים שבו, אבל אתה לא בודק מה סוג ה instance שלו ככה. אתה תבדוק או באמצעות kind_of? והalias שלו, או באמצעות השוואת class לסוג מחלקה מסויימת.

      אבל כאשר אתה צריך להשוות משתנה למספר סוגים ולפעול שונה בכל סוג, אז case לא יעבוד עם class.

כתיבת תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s