שינוי מילונים
חלק מהיחידה יסודות במסלול ה-Ruby של Coddy. שיעור 75 מתוך 88.
מפות גיבוב אינן נשארות קבועות לאחר יצירתן. אפשר להוסיף זוגות מפתח-ערך חדשים, לעדכן ערכים קיימים ולהסיר רשומות בזמן שהתוכנית שלך פועלת.
כדי להוסיף זוג חדש או לעדכן ערך קיים, השם ערך למפתח באמצעות סוגריים מרובעים:
person = {"name" => "Alice", "age" => 25}
person["city"] = "Paris" # מוסיף זוג מפתח-ערך חדש
person["age"] = 26 # מעדכן ערך קיים
puts person # מציג פלט: {"name"=>"Alice", "age"=>26, "city"=>"Paris"}אם המפתח קיים, הערך מוחלף. אם הוא לא קיים, מתווסף זוג חדש לגיבוב.
כדי להסיר זוג מפתח-ערך, השתמשו במתודה delete עם המפתח שברצונכם להסיר:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
person.delete("city")
puts person # פלט: {"name"=>"Alice", "age"=>25}המתודה delete מחזירה את הערך שהוסר, וזה עשוי להיות שימושי אם צריך להשתמש בו:
person = {"name" => "Alice", "age" => 25}
removed_age = person.delete("age")
puts removed_age # פלט: 25אם תנסה למחוק מפתח שאינו קיים, Ruby פשוט מחזירה nil בלי להעלות שגיאה.
אתגר
קלקראו ארבע שורות קלט:
- שם של תלמיד (מחרוזת)
- ציון התחלתי (מספר שלם)
- ציון חדש לעדכון (מספר שלם)
- זוג מפתח-ערך חדש בפורמט
key:value(לדוגמה,subject:Math)
צרו hash בשם student עם זוגות המפתח-ערך ההתחלתיים הבאים:
"name"ממופה לשם התלמיד"grade"ממופה לציון ההתחלתי (כמספר שלם)
לאחר מכן בצעו את השינויים הבאים:
- עדכנו את המפתח
"grade"עם ערך הציון החדש - הוסיפו זוג מפתח-ערך חדש באמצעות המפתח והערך מהקלט הרביעי (הערך צריך להישאר מחרוזת)
- מחקו את המפתח
"name"מה-hash ושמרו את הערך שהוסר
הדפיסו את השם שהוסר בשורה הראשונה, ולאחר מכן הדפיסו את ה-hash הסופי בשורה השנייה.
לדוגמה, אם הקלט הוא Alice, 85, 92 ו-subject:Math, הפלט צריך להיות:
Alice
{"grade"=>92, "subject"=>"Math"}אם הקלט הוא Bob, 70, 75 ו-status:passing, הפלט צריך להיות:
Bob
{"grade"=>75, "status"=>"passing"}אם הקלט הוא Charlie, 100, 95 ו-note:excellent, הפלט צריך להיות:
Charlie
{"grade"=>95, "note"=>"excellent"}נסו בעצמכם
# קראו את הקלט
name = gets.chomp
initial_grade = gets.to_i
new_grade = gets.to_i
key_value_pair = gets.chomp
# TODO: כתבו את הקוד שלכם למטה
# 1. צרו hash בשם 'student' עם המפתחות "name" ו-"grade"
# 2. עדכנו את המפתח "grade" בערך הציון החדש
# 3. פענחו את key_value_pair והוסיפו אותו ל-hash
# 4. מחקו את המפתח "name" ושמרו את הערך שהוסר
# הדפיסו את השם שהוסר
puts removed_name
# הדפיסו את ה-hash הסופי
puts studentהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
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 אונליין