Menu
CoddyTech

מעבר על מפות

חלק מהיחידה יסודות במסלול ה-GO של Coddy. שיעור 92 מתוך 109.

מילת המפתח range מאפשרת לך לעבור על כל זוגות המפתח-ערך במפה. היא מחזירה גם את המפתח וגם את הערך של כל רשומה.

צור מפה של מלאי הפירות:

inventory := map[string]int{
    "apples": 5,
    "bananas": 8,
    "oranges": 12,
}

for fruit, quantity := range inventory {
    fmt.Printf("%s: %d\n", fruit, quantity)
}

התוצאה מציגה כל זוג מפתח-ערך:

apples: 5
bananas: 8
oranges: 12

Go לא מבטיחה את הסדר שבו range עוברת על ערכי המפה, ולכן השורות האלה יכולות להופיע בסדר שונה בכל פעם שהלולאה רצה.

אם דרושים לך רק המפתחות, אפשר להשמיט את המשתנה השני:

for fruit := range inventory {
    fmt.Println(fruit)
}
challenge icon

אתגר

מתחילים

באתגר הזה תתרגלו איטרציה על פני מפה באמצעות מילת המפתח range ב-Go. נוצרה עבורכם מפה של ציוני תלמידים. המשימה שלכם היא לעבור על המפה ולהדפיס את השם של כל תלמיד ואת הציון שלו.

השלימו את הקוד כדי לעבור על המפה studentGrades ולהדפיס את השם והציון של כל תלמיד בתבנית: Student: [name], Grade: [grade]

נסו בעצמכם

package main

import (
	"fmt"
	"sort"
)

func main() {
	// מפה של ציוני תלמידים
	studentGrades := map[string]string{
		"Alice":  "A",
		"Bob":    "B",
		"Charlie": "B+",
		"David":  "A-",
		"Eva":    "C",
	}

	// אספו את שמות התלמידים (המפתחות) ל-slice כדי למיין אותם
	var names []string
	for name := range studentGrades {
		names = append(names, name)
	}
	sort.Strings(names)


	// TODO: עברו על הרשימה הממוינת של שמות התלמידים
	// והדפיסו את שמו ואת ציונו של כל תלמיד בפורמט:
	// "Student: [name], Grade: [grade]"
}
quiz iconבחנו את עצמכם

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

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

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