РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
289 of 1593 menu

Функция maps.EqualFunc

Функция maps.EqualFunc из пакета maps проверяет, имеют ли две карты одинаковый набор ключей и равные значения согласно предоставленной функции сравнения. Первым параметром она принимает первую карту для сравнения, вторым - вторую карту, а третьим - функцию, которая определяет, равны ли значения для заданного ключа.

Синтаксис

maps.EqualFunc(m1, m2, eq func(V, V) bool) bool

Пример

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

package main import ( "fmt" "maps" ) func main() { m1 := map[string]int{"a": 10, "b": 20} m2 := map[string]int{"a": 11, "b": 19} res := maps.EqualFunc(m1, m2, func(v1, v2 int) bool { return v1 == v2 || v1 == v2+1 || v1 == v2-1 }) fmt.Println(res) }

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

true

Пример

Рассмотрим случай, когда ключи совпадают, но значения не проходят проверку на равенство:

package main import ( "fmt" "maps" ) func main() { m1 := map[string]int{"x": 5, "y": 15} m2 := map[string]int{"x": 10, "y": 20} res := maps.EqualFunc(m1, m2, func(v1, v2 int) bool { return v1 == v2 }) fmt.Println(res) }

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

false

Пример

Если наборы ключей различаются, функция всегда возвращает false, даже если значения совпадают:

package main import ( "fmt" "maps" ) func main() { m1 := map[string]int{"a": 1, "b": 2} m2 := map[string]int{"a": 1, "c": 2} res := maps.EqualFunc(m1, m2, func(v1, v2 int) bool { return v1 == v2 }) fmt.Println(res) }

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

false

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

  • функцию maps.Equal,
    которая сравнивает карты на строгое равенство значений
  • функцию maps.Keys,
    которая возвращает слайс ключей карты
  • функцию maps.Values,
    которая возвращает слайс значений карты
  • функцию maps.DeleteFunc,
    которая удаляет элементы карты по условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить