יצירת מילונים
חלק מהיחידה יסודות במסלול ה-Ruby של Coddy. שיעור 73 מתוך 88.
מערכים מצוינים לאחסון רשימות מסודרות, אבל לפעמים צריך לשייך ערכים לתוויות מסוימות במקום לאינדקסים מספריים. גיבוב מאחסן נתונים כזוגות מפתח-ערך, כאשר כל מפתח מצביע לערך המתאים לו.
כדי ליצור גיבוב, השתמשו בסוגריים מסולסלים, כשהמפתחות והערכים מופרדים באמצעות => (שנקרא חץ גיבוב):
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person # פלט: {"name"=>"Alice", "age"=>25, "city"=>"Paris"}כל מפתח חייב להיות ייחודי בתוך הגיבוב, אבל ערכים יכולים לחזור על עצמם. מפתחות וערכים יכולים להיות מכל סוג נתונים, כולל מחרוזות, מספרים או אפילו מערכים.
אפשר גם ליצור hash ריק ולהוסיף זוגות מאוחר יותר:
scores = {}
puts scores # פלט: {}Hashes מושלמים לייצוג אובייקטים מהעולם האמיתי עם מאפיינים בעלי שמות, כמו מוצר עם שם ומחיר, או משתמש עם כתובת דוא״ל וסיסמה. בניגוד למערכים שבהם צריך לזכור מיקומים, hashes מאפשרים לך להשתמש בשמות משמעותיים כדי לארגן את הנתונים שלך.
אתגר
קלקראו שלוש שורות קלט:
- כותרת של ספר (מחרוזת)
- שם המחבר (מחרוזת)
- שנת פרסום (מספר שלם)
צרו 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 אונליין