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.
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
1Zaawansowane sterowanie przepływem
Instrukcja switch z `fallthrough`Przerywanie zagnieżdżonych pętliKontynuowanie określonej pętliInstrukcja `goto`Podsumowanie — zaawansowane sterowanie pętlami4Projekt: Prosta lista zadań
Konfiguracja projektuDodawanie zadania2Struktury i metody
Definiowanie metod dla strukturOdbiorniki przez wartośćOdbiorniki przez wskaźnikWybór odbiornikówMetody a funkcjePodsumowanie — działanie struktur5Mapy w szczegółach
Mapy strukturWskaźniki jako wartości mapSprawdzanie, czy mapy są nilPorównywanie mapPodsumowanie — licznik częstości słów3Interfejsy (podstawy)
Czym jest interfejs?Definiowanie interfejsuImplementowanie interfejsuUżywanie typów interfejsowychPusty interfejsAsercje typuPrzełącznik typówPodsumowanie – kształty i zachowaniaPoćwicz samodzielnie: Kompilator Go online