Pipeline: generate → square → sum
Три стадии конвейера, каждая «канал в, канал наружу». Реализуйте generate, square и sum.
Показать решение
GolangРешение
func generate(nums ...int) <-chan int {
out := make(chan int)
go func() {
for _, n := range nums {
out <- n
}
close(out)
}()
return out
}
func square(in <-chan int) <-chan int {
out := make(chan int)
go func() {
for n := range in {
out <- n * n
}
close(out)
}()
return out
}
func sum(in <-chan int) int {
total := 0
for n := range in {
total += n
}
return total
}Записаться на разбор
10 000 ₽ · 60 минут · онлайн