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

Функция maps.Clone

Функция maps.Clone создает копию переданной карты. Она принимает один параметр - исходную карту, а возвращает новую карту с теми же ключами и значениями. Клонирование является поверхностным: значения копируются по ссылке, но сама структура карты создается заново.

Синтаксис

maps.Clone(map[M]K) map[M]K

Пример

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

package main import ( "fmt" "maps" ) func main() { original := map[string]int{"a": 1, "b": 2, "c": 3} clone := maps.Clone(original) fmt.Println(original) fmt.Println(clone) }

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

map[a:1 b:2 c:3] map[a:1 b:2 c:3]

Пример

Клонированная карта является независимой копией. Изменения в оригинальной карте не влияют на клон:

package main import ( "fmt" "maps" ) func main() { original := map[string]int{"a": 1, "b": 2, "c": 3} clone := maps.Clone(original) original["a"] = 100 clone["b"] = 200 fmt.Println(original) fmt.Println(clone) }

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

map[a:100 b:2 c:3] map[a:1 b:200 c:3]

Пример

Клонирование работает с любыми типами ключей и значений. Давайте скопируем карту со строковыми ключами и слайсами в качестве значений:

package main import ( "fmt" "maps" ) func main() { original := map[int][]string{ 1: {"a", "b"}, 2: {"c", "d"}, } clone := maps.Clone(original) fmt.Println(original) fmt.Println(clone) }

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

map[1:[a b] 2:[c d]] map[1:[a b] 2:[c d]]

Пример

Функция maps.Clone корректно обрабатывает пустые и nil карты. Передача nil карты вернет также nil:

package main import ( "fmt" "maps" ) func main() { var empty map[string]int var nilMap map[string]int cloneEmpty := maps.Clone(empty) cloneNil := maps.Clone(nilMap) fmt.Println(cloneEmpty == nil) fmt.Println(cloneNil == nil) }

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

false true

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

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