cpp

Создание копии словаря

Если присвоить словарь другой переменной, то будут скопированы лишь поля структуры словаря, а не элементы словаря. В результате обе переменные будут ссылаться на один и тот же участок памяти:

dict := map[string]int{"a": 10, "b": 20}
dict2 := dict
dict2["a"] = 88
fmt.Println(dict)  // map[a:88 b:20]
fmt.Println(dict2) // map[a:88 b:20]

Стандартного способа создать копию словаря нет. Напишем свой вариант:

dict := map[string]int{"a": 10, "b": 20}
dict2 := make(map[string]int, len(dict))
for key, value := range dict {
   dict2[key] = value
}
dict2["a"] = 88
fmt.Println(dict)  // map[a:10 b:20]
fmt.Println(dict2) // map[a:88 b:20]

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp