Функция delete

Функция delete удаляет элемент с заданным ключом из map. Первый параметр — это map, из которого нужно удалить элемент, второй параметр — ключ, который необходимо удалить. Если указанный ключ отсутствует в map, функция не выполняет никаких действий и не вызывает паники.

Синтаксис

godelete(map, key)

Пример

Создадим map с именами пользователей и их возрастом, затем удалим один элемент по ключу:

gopackage main

import "fmt"

func main() {
  ages := map[string]int{
    "Alice": 30,
    "Bob":   25,
    "Eve":   28,
  }

  fmt.Println("До удаления:", ages)

  delete(ages, "Bob")

  fmt.Println("После удаления:", ages)
}

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

go"До удаления: map[Alice:30 Bob:25 Eve:28]"
"После удаления: map[Alice:30 Eve:28]"

Пример

Попробуем удалить ключ, которого нет в map. В этом случае программа продолжит работу без ошибок:

gopackage main

import "fmt"

func main() {
  data := map[int]string{
    1: "one",
    2: "two",
    3: "three",
  }

  fmt.Println("До удаления:", data)

  delete(data, 5) // такого ключа нет

  fmt.Println("После удаления:", data)
}

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

go"До удаления: map[1:one 2:two 3:three]"
"После удаления: map[1:one 2:two 3:three]"

Пример

Удаление всех элементов из map путем перебора ключей:

gopackage main

import "fmt"

func main() {
  scores := map[string]int{
    "math":  95,
    "physics": 87,
    "biology": 92,
  }

  fmt.Println("До очистки:", scores)

  for key := range scores {
    delete(scores, key)
  }

  fmt.Println("После очистки:", scores)
}

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

go"До очистки: map[biology:92 math:95 physics:87]"
"После очистки: map[]"

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

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