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