Начните с пустой карты и объедините все карты, полученные на канале, с картой:
merged := make(make[string]int)
for m := range c {
for k, v := range m {
merged[k] = v
}
}
Цикл завершается, когда канал c
закрыт. Карта merged
- это объединение всех карт, полученных на c
.
Используйте переменную для ссылки на объединенную карту вместо отправки объединенной карты обратно в канал. Отправка объединенной карты обратно в канал усложняет конечное условие без увеличения параллелизма.