Функция maps.DeleteFunc

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

Синтаксис

gomaps.DeleteFunc(m, func(k T, v U) bool)

где m - карта, которую нужно очистить, а func - функция-предикат, определяющая, какие элементы следует удалить.

Пример

Давайте удалим из карты все элементы с четными значениями:

gopackage main

import (
  "fmt"
  "maps"
)

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

  maps.DeleteFunc(m, func(k string, v int) bool {
    return v%2 == 0
  })

  fmt.Println(m)
}

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

gomap[a:1 c:3]

Пример

Давайте удалим из карты все элементы с ключами, начинающимися на букву "b":

gopackage main

import (
  "fmt"
  "maps"
)

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

  maps.DeleteFunc(m, func(k string, v int) bool {
    return k == "b"
  })

  fmt.Println(m)
}

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

gomap[a:1 c:3 d:4]

Пример

Давайте удалим из карты все элементы, значения которых меньше или равны 10:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  m := map[string]int{
    "x": 5,
    "y": 15,
    "z": 25,
  }

  maps.DeleteFunc(m, func(k string, v int) bool {
    return v <= 10
  })

  fmt.Println(m)
}

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

gomap[y:15 z:25]

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

  • функцию maps.Clear,
    которая удаляет все элементы из карты
  • функцию delete,
    которая удаляет один элемент по ключу
  • функцию maps.Keys,
    которая возвращает срез ключей карты
  • функцию maps.Values,
    которая возвращает срез значений карты