Назад к вопросам
Junior — Middle
83
В каком месте в коде необходимо закрывать канал?
Компании, где спрашивали
Startribe
Ответ от нейросети
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) // получаем данные, пока канал не закроется
}