סמלים כמפתחות במילון
חלק מהיחידה יסודות במסלול ה-Ruby של Coddy. שיעור 78 מתוך 88.
עד כה השתמשת במחרוזות כמפתחות ב-hash באמצעות תחביר חץ ה-hash. עם זאת, מפתחי Ruby משתמשים בדרך כלל בסמלים כמפתחות, מה שמציע גישה נקייה ויעילה יותר.
זוכר סמלים משיעורים קודמים? אלה מזהים קלי משקל ובלתי ניתנים לשינוי, שמתחילים בנקודתיים. כשמשתמשים בסמלים כמפתחות, Ruby מספקת תחביר מקוצר מיוחד:
person = {name: "Alice", age: 25, city: "Paris"}
puts person # פלט: {:name=>"Alice", :age=>25, :city=>"Paris"}שימו לב איך name: מחליף את :name =>. הקיצור הזה פועל רק כשהמפתח הוא סמל. כדי לגשת לערכים, השתמשו בסמל עם סוגריים מרובעים:
person = {name: "Alice", age: 25}
puts person[:name] # פלט: Alice
puts person[:age] # פלט: 25הוספה ושינוי של רשומות פועלים באותו אופן:
person = {name: "Alice"}
person[:city] = "Paris"
person[:name] = "Bob"
puts person # פלט: {:name=>"Bob", :city=>"Paris"}מומלץ להשתמש בסמלים כמפתחות גיבוב, כי מהיר יותר להשוות אותם מאשר מחרוזות, והם צורכים פחות זיכרון. תיתקלו בדפוס הזה לאורך קוד Ruby, ולכן כדאי להתרגל אליו.
אתגר
קלקרא שלוש שורות קלט:
- מותג של מכונית (מחרוזת)
- שם הדגם (מחרוזת)
- שנה (מספר שלם)
צור hash בשם car באמצעות תחביר הקיצור של symbol (לדוגמה, key: value) עם צמדי המפתח-ערך הבאים:
:brandממופה למותג המכונית:modelממופה לשם הדגם:yearממופה לשנה (כמספר שלם)
לאחר מכן בצע את הפעולות הבאות:
- הדפס את הערך של המפתח
:model - הוסף מפתח חדש
:colorעם הערך"black" - עדכן את המפתח
:yearעל ידי הוספת 1 לערך הנוכחי שלו - הדפס את ה-hash הסופי
לדוגמה, אם הקלט הוא Toyota, Camry ו-2020, הפלט אמור להיות:
Camry
{:brand=>"Toyota", :model=>"Camry", :year=>2021, :color=>"black"}אם הקלט הוא Honda, Civic ו-2018, הפלט אמור להיות:
Civic
{:brand=>"Honda", :model=>"Civic", :year=>2019, :color=>"black"}אם הקלט הוא Ford, Mustang ו-2023, הפלט אמור להיות:
Mustang
{:brand=>"Ford", :model=>"Mustang", :year=>2024, :color=>"black"}נסו בעצמכם
# קראו את הקלט
brand = gets.chomp
model = gets.chomp
year = gets.chomp.to_i
# TODO: כתבו את הקוד שלכם למטה
# 1. צרו hash בשם 'car' באמצעות התחביר המקוצר של סמלים, עם המפתחות :brand, :model ו-:year
# 2. הדפיסו את הערך של המפתח :model
# 3. הוסיפו מפתח חדש :color עם הערך "black"
# 4. עדכנו את המפתח :year על ידי הוספת 1 לערכו הנוכחי
# 5. הדפיסו את ה-hash הסופיהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
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 אונליין