В Go можно найти сумму двух map
-ов, объединив их значения в новом map
. Для этого можно использовать следующий код:
package main import "fmt" func main() { // Создаем два map-а map1 := map[string]int{ "a": 1, "b": 2, } map2 := map[string]int{ "b": 3, "c": 4, } // Создаем новый map, в котором будем хранить сумму значений sum := make(map[string]int) // Перебираем все ключи первого map-а for key, value := range map1 { // Проверяем, есть ли такой ключ во втором map-е if val, ok := map2[key]; ok { // Если ключ есть втором map-е, то добавляем сумму значений в новый map sum[key] = value + val } else { // Если ключа нет во втором map-е, то просто добавляем значение из первого map-а sum[key] = value } } // Перебираем все ключи второго map-а for key, value := range map2 { // Если ключа нет в новом map-е, то добавляем значение из второго map-а if _, ok := sum[key]; !ok { sum[key] = value } } // Выводим результат fmt.Println(sum) // map[a:1 b:5 c:4] }
В данном примере создаются два map
-а: map1
и map2
. Затем создается новый map
sum
, в котором будет храниться сумма значений.
Далее выполняется два цикла for
, первый цикл перебирает все ключи первого map
-а map1
, проверяет наличие такого же ключа во втором map
-е map2
. Если ключ есть во втором map
-е, то суммирует значения и добавляет их в sum
. Если ключа нет во втором map
-е, то просто добавляет значение из первого map
-а.
Второй цикл for
перебирает все ключи второго map
-а map2
и добавляет значения, которых нет в sum
.
В результате выполнения кода, выводится новый map
sum
, в котором хранится сумма значений двух исходных map
-ов. В данном примере результат будет map[a:1 b:5 c:4]
.