Функция maps.DeleteFunc
Функция maps.DeleteFunc удаляет из карты все элементы,
для которых переданная функция-предикат возвращает
true. Первым параметром функция принимает карту
для модификации, вторым - функцию проверки,
которая принимает ключ и значение и возвращает
bool.
Синтаксис
maps.DeleteFunc(m, func(k T, v U) bool)
где m - карта, которую нужно очистить,
а func - функция-предикат, определяющая,
какие элементы следует удалить.
Пример
Давайте удалим из карты все элементы с четными значениями:
package 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)
}
Результат выполнения кода:
map[a:1 c:3]
Пример
Давайте удалим из карты все элементы с ключами, начинающимися на букву "b":
package 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)
}
Результат выполнения кода:
map[a:1 c:3 d:4]
Пример
Давайте удалим из карты все элементы, значения которых меньше или равны 10:
package 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)
}
Результат выполнения кода:
map[y:15 z:25]
Смотрите также
-
функцию
maps.Clear,
которая удаляет все элементы из карты -
функцию
delete,
которая удаляет один элемент по ключу -
функцию
maps.Keys,
которая возвращает срез ключей карты -
функцию
maps.Values,
которая возвращает срез значений карты