Menu
CoddyTech

יצירת מילונים

חלק מהיחידה יסודות במסלול ה-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  # פלט: {}

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

challenge icon

אתגר

קל

קרא שלוש שורות קלט:

  1. כותרת ספר (מחרוזת)
  2. שם המחבר או המחברת (מחרוזת)
  3. שנת פרסום (מספר שלם)

צור 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
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Ruby אונליין