for по массиву. В итоге у меня получается что-то вроде
var wg sync.WaitGroup
wg.Add(len(array))
results := make(chan int, len(array))
for _, x := range array {
go func(x int) {
results <- x * x
wg.done()
}
}
wg.Wait()
for y := <- results ...
С одной стороны работает, с другой как-то много мусора вокруг. Может есть какие-то способы поумнее?
errgroup?
Вцелом ок, зависит от чтения, которого в примере нет. Если там 1 рутина, то разницы нет. С каналами и правда больше кода.
Обсуждают сегодня