Функция maps.Equal

Функция maps.Equal сравнивает две карты на равенство. Она возвращает true, если обе карты содержат одинаковое количество элементов и для всех пар ключ-значение выполняется равенство значений. Первым параметром функция принимает первую карту, вторым - вторую карту для сравнения.

Синтаксис

gomaps.Equal(map1, map2)

Пример

Давайте сравним две одинаковые карты с целочисленными ключами и строковыми значениями:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  m1 := map[int]string{1: "a", 2: "b", 3: "c"}
  m2 := map[int]string{1: "a", 2: "b", 3: "c"}

  res := maps.Equal(m1, m2)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Пример

Теперь сравним две карты, которые отличаются значениями по одному из ключей:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  m1 := map[int]string{1: "a", 2: "b", 3: "c"}
  m2 := map[int]string{1: "a", 2: "x", 3: "c"}

  res := maps.Equal(m1, m2)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Пример

Сравнение карт с разным количеством элементов:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  m1 := map[string]int{"a": 1, "b": 2, "c": 3}
  m2 := map[string]int{"a": 1, "b": 2}

  res := maps.Equal(m1, m2)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Пример

Сравнение двух пустых карт:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  m1 := map[string]int{}
  m2 := map[string]int{}

  res := maps.Equal(m1, m2)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Смотрите также

  • функцию maps.EqualFunc,
    которая позволяет сравнить карты с использованием пользовательской функции сравнения значений
  • функцию maps.Copy,
    которая копирует элементы из одной карты в другую
  • функцию maps.Clone,
    которая создает копию карты
  • функцию maps.Keys,
    которая возвращает слайс ключей карты