Menu
Coddy logo textTech

Porównywanie map

Część sekcji Logika i przepływ sterowania ścieżki GO w Coddy. Lekcja 29 z 68.

W przeciwieństwie do wielu innych typów danych w Go, mapy mają wyjątkowe ograniczenie: nie można ich bezpośrednio porównywać za pomocą operatora ==. Jedynym wyjątkiem od tej reguły jest porównywanie mapy z wartością nil.

Oznacza to, że taki kod się nie skompiluje:

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

// To spowoduje błąd kompilacji!
if map1 == map2 {
    fmt.Println("Maps are equal")
}

Możesz jednak bezpiecznie porównać mapę z nil:

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

Gdy musisz sprawdzić, czy dwie mapy zawierają te same pary klucz-wartość, musisz napisać własną funkcję, która iteruje po obu mapach i porównuje każdy element z osobna. Takie podejście daje Ci pełną kontrolę nad logiką porównywania i pozwala dokładnie określić, co oznacza „równe” w Twoim konkretnym przypadku.

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Go online