Вопрос: Как написать функцию, возвращающую канал (generator pattern)?
Go
Senior
Без компании
Вопрос: Как написать функцию, возвращающую канал (generator pattern)?
Ответы
```go
func gen(n int) <-chan int {
out := make(chan int)
go func() {
defer close(out)
for i := 0; i < n; i++ {
out <- i
}
}()
return out
}
for v := range gen(3) {
fmt.Println(v)
}
```
**Как это работает:** функция запускает goroutine и возвращает read-only канал. Это удобный паттерн для пайплайнов.