יצירת מילונים
חלק מהיחידה יסודות במסלול ה-Ruby של Coddy. שיעור 73 מתוך 88.
מערכים מצוינים לאחסון רשימות מסודרות, אבל לפעמים צריך לשייך ערכים לתוויות מסוימות במקום לאינדקסים מספריים. האש מאחסן נתונים כצמדי מפתח-ערך, כאשר כל מפתח מצביע על הערך המתאים לו.
כדי ליצור hash, השתמש בסוגריים מסולסלים עם מפתחות וערכים המופרדים באמצעות => (שנקרא חץ hash):
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person # פלט: {"name"=>"Alice", "age"=>25, "city"=>"Paris"}כל מפתח חייב להיות ייחודי בתוך הגיבוב, אך ערכים יכולים לחזור על עצמם. מפתחות וערכים יכולים להיות מכל סוג נתונים, כולל מחרוזות, מספרים או אפילו מערכים.
אפשר גם ליצור hash ריק ולהוסיף זוגות בהמשך:
scores = {}
puts scores # פלט: {}טבלאות גיבוב מושלמות לייצוג אובייקטים מהעולם האמיתי עם מאפיינים בעלי שמות, כמו מוצר עם שם ומחיר או משתמש עם כתובת דוא״ל וסיסמה. בניגוד למערכים, שבהם צריך לזכור את המיקומים, טבלאות גיבוב מאפשרות להשתמש בשמות בעלי משמעות כדי לארגן את הנתונים שלך.
אתגר
קלקרא שלוש שורות קלט:
- כותרת ספר (מחרוזת)
- שם המחבר או המחברת (מחרוזת)
- שנת פרסום (מספר שלם)
צור hash בשם book עם שלושה זוגות של מפתח וערך באמצעות תחביר hash rocket (=>):
"title"ימופה לכותרת הספר"author"ימופה לשם המחבר או המחברת"year"ימופה לשנת הפרסום (כמספר שלם)
הדפס את ה-hash באמצעות puts.
לדוגמה, אם הקלט הוא Ruby Basics, Jane Smith ו-2023, הפלט צריך להיות:
{"title"=>"Ruby Basics", "author"=>"Jane Smith", "year"=>2023}אם הקלט הוא The Great Gatsby, F. Scott Fitzgerald ו-1925, הפלט צריך להיות:
{"title"=>"The Great Gatsby", "author"=>"F. Scott Fitzgerald", "year"=>1925}אם הקלט הוא 1984, George Orwell ו-1949, הפלט צריך להיות:
{"title"=>"1984", "author"=>"George Orwell", "year"=>1949}נסו בעצמכם
# קראו את הקלט
title = gets.chomp
author = gets.chomp
year = gets.to_i
# TODO: צרו hash בשם 'book' עם שלושה זוגות מפתח-ערך באמצעות תחביר hash rocket (=>)
# המפתחות צריכים להיות: "title", "author", "year"
# הדפיסו את ה-hash
puts bookהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3אופרטורים לוגיים חלק 42משתנים וטיפוסי נתונים
מספרים ומשתניםטיפוס הנתונים מחרוזתטיפוס הנתונים בוליאניטיפוס הנתונים Symbolבדיקת טיפוסי נתוניםמוסכמות שמותסיכום – יצירת משתנים8לולאות
לולאת for עם טווחיםלולאת whilebreaknextסיכום – עצרתלולאת timesלולאת untilלולאות מקוננותסיכום – קלט דינמי11מערכים
יצירת מערכיםגישה לאיברי מערךשינוי מערכיםמתודות של מערכיםחזרה – מערך מכפלותחזרה – מערך הפוךקיצורי דרך למערכים14מילונים (Hashes)
יצירת מילוניםגישה לאיברים במילוןשינוי מילוניםמתודות של מילוןסיכום — מילון מוצריםסמלים כמפתחות במילון3אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוקיצורי דרך אריתמטייםסיכום – חשבון פשוטאופרטורי השוואה6קלט ופלט בסיסיים
פלט באמצעות putsפלט באמצעות print ו־pפלט באמצעות משתניםקלט באמצעות getsשיטת Chompהמרת טיפוסיםחזרה — מחשבון גילחזרה — אמת או שקר9מתודות
הגדרת מתודהפרמטרים של מתודהערכי החזרהסיכום - מתודת Sigmaסיכום - מתודת האימותערכי ברירת מחדל של פרמטרים15מעקב אחר הוצאות יומיות
סקירת הפרויקטיציאה מהתוכניתתרגלו בעצמכם: קומפיילר Ruby אונליין