מערכים אינן הדרך היחידה לנהל אוספים של משתנים ב- רובי. סוג אחר של אוסף משתנים הוא חשיש, המכונה גם מערך אסוציאטיבי. חשיש הוא כמו מערך בכך שהוא משתנה המאחסן משתנים אחרים. עם זאת, חשיש אינו דומה למערך בכך שהמשתנים המאוחסנים אינם מאוחסנים בסדר מסוים, והם מוחזרים באמצעות מקש במקום לפי מיקומם באוסף.
צור קש עם זוגות מפתח / ערך
חשיש יעיל לאחסון מה שנקרא זוגות מפתח / ערך. לזוג מפתח / ערך יש מזהה המסמל לאיזה משתנה של ה- hash שאליו ברצונך לגשת ו משתנה לאחסון במצב זה בחשיש. לדוגמה, מורה עשוי לאחסן את ציוני התלמיד בחשיפה. לכיתה של בוב ניתן לגשת בחשיש באמצעות המקש "בוב" והמשתנה המאוחסן במקום זה יהיה הציון של בוב.
ניתן ליצור משתנה hash באותו אופן כמו משתנה מערך. השיטה הפשוטה ביותר היא ליצור אובייקט חשיש ריק ולמלא אותו בזוגות מפתח / ערך. שימו לב שמשתמשים במפעיל האינדקס, אך שם הסטודנט משמש במקום מספר.
זכור כי חשיש אינו מסודר, כלומר אין התחלה או סיום מוגדרים כפי שיש במערך. אז אתה לא יכול לצרף חשיש. ערכים מוכנסים פשוט לחשיש באמצעות מפעיל האינדקס.
#! / usr / bin / env אודם
ציונים = האש. חדש
ציונים ["בוב"] = 82
כיתות ["ג'ים"] = 94
ציונים ["בילי"] = 58
מכניס ציונים ["ג'ים"]
ספרות האש
ממש כמו מערכים, ניתן ליצור חשיש באמצעות חשיש מילוליות. מילולי האש משתמשים בכתפיות המתולתלות במקום בסוגריים מרובעים ובזוגות ערכי המפתח מצטרף =>. לדוגמה, חשיש עם צמד מפתח / ערך יחיד של Bob / 84 ייראה כך: {"בוב" => 84}. ניתן להוסיף זוגות מפתח / ערכים נוספים למילולי החשיש על ידי הפרדתם עם פסיקים. בדוגמה הבאה נוצר חשיש עם הציונים למספר תלמידים.
#! / usr / bin / env אודם
ציונים = {"בוב" => 82,
"ג'ים" => 94,
"בילי" => 58
}
מכניס ציונים ["ג'ים"]
גישה למשתנים בהאש
יתכנו זמנים שבהם עליך לגשת לכל משתנה בחשיש. אתה עדיין יכול לעבור על המשתנים בחשיש באמצעות ה- כל אחד לולאה, אם כי זה לא יעבוד באותו אופן כמו השימוש ב- כל אחד לולאה עם משתני מערך. מכיוון שחשיש אינו מסודר, הסדר בו כל אחד יתאים מעל זוגות המפתחות / הערכים שאינם זהים לסדר בו הכנסתם. בדוגמה זו, חריץ ציונים יעבור לולאה ויודפס.
#! / usr / bin / env אודם
ציונים = {"בוב" => 82,
"ג'ים" => 94,
"בילי" => 58
}
בצעו שם, ציון |
מכניס "# {name}: # {grade}"
סוף