Функция maps.Copy

Функция maps.Copy копирует все пары ключ-значение из исходной map (второй аргумент) в целевую map (первый аргумент). Если ключ уже присутствует в целевой map, его значение будет перезаписано значением из исходной map. Функция ничего не возвращает.

Синтаксис

gomaps.Copy(dst, src)

Пример

Давайте скопируем элементы из одной map в другую:

gopackage main

import (
  "fmt"
  "maps"
)

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

  maps.Copy(dst, src)
  fmt.Println(dst)
}

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

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

Как видите, ключ "b" был перезаписан, а ключ "c" добавлен.

Пример

Если целевая map пуста, она будет заполнена элементами из исходной:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  dst := map[string]int{}
  src := map[string]int{"x": 10, "y": 20}

  maps.Copy(dst, src)
  fmt.Println(dst)
}

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

gomap[x:10 y:20]

Пример

Исходная map может быть пустой — в этом случае целевая map не изменится:

gopackage main

import (
  "fmt"
  "maps"
)

func main() {
  dst := map[int]string{1: "one", 2: "two"}
  src := map[int]string{}

  maps.Copy(dst, src)
  fmt.Println(dst)
}

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

gomap[1:one 2:two]

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

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