Back to questions
Junior — Middle
84
В каком месте в коде необходимо закрывать канал?
Companies where asked
Startribe
Answer from AI
sobes.tech AI
В Go канал следует закрывать в том месте, где он создаётся и где больше не планируется отправлять данные. Обычно это делает отправитель, чтобы сигнализировать получателям, что данных больше не будет.
Важно:
- Получатели могут проверять закрытие канала при чтении.
- Закрывать канал должен только отправитель, чтобы избежать паники.
Пример:
ch := make(chan int)
go func() {
defer close(ch) // закрываем канал после отправки всех данных
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // получаем данные, пока канал не закроется
}