Menu
Coddy logo textTech

השוואת מפות

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-GO של Coddy. שיעור 29 מתוך 68.

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

המשמעות היא שקוד כזה לא יתקמפל:

map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}

// זה יגרום לשגיאת קומפילציה!
if map1 == map2 {
    fmt.Println("Maps are equal")
}

עם זאת, אפשר להשוות מפה ל-nil בבטחה:

var myMap map[string]int
if myMap == nil {
    fmt.Println("Map is nil")
}

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

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

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