Menu
CoddyTech

Сравнение карт

Часть раздела Логика и управление потоком путешествия по 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