Накопление по карте в Go
Сумму значений карты собирают в отдельную переменную внутри цикла. Перед циклом накопитель обнуляют, на каждом круге добавляют текущее значение пары. Ключи для простой суммы не нужны.
Сложим возрасты двух людей:
ages := map[string]int{"ann": 20, "bob": 30}
sum := 0
for _, v := range ages {
sum += v
}
fmt.Println(sum)
На экране 50. Порядок кругов на сумму
не влияет: сложение коммутативно.
Тот же прием считает количество пар с подходящим значением, если вместо суммы увеличивать счетчик:
room := map[string]int{"a": 1, "b": 2, "c": 3}
count := 0
for _, v := range room {
if v > 1 {
count++
}
}
fmt.Println(count)
Дана следующая карта:
data := map[string]int{"x": 4, "y": 6}
Соберите сумму значений в total
и выведите результат.
Дана следующая карта:
room := map[string]int{"a": 1, "b": 4, "c": 7}
Найдите сумму только четных значений через
if внутри цикла и выведите ее.
Дана следующая карта:
factors := map[int]int{1: 2, 2: 3}
Начните prod с 1, перемножьте
все значения в цикле и выведите prod.