Sobes.tech
Back to questions
Middle+
3

Что произойдет, если писать в закрытый канал в Go?

Companies where asked
Magnit Tech

Answer from AI

sobes.tech AI

Если попытаться записать значение в закрытый канал в Go, произойдет паника (panic) с сообщением "send on closed channel". Это связано с тем, что закрытый канал больше не принимает новые значения.

Пример:

ch := make(chan int)
close(ch)
ch <- 1 // panic: send on closed channel

Важно:

  • Чтение из закрытого канала возможно и вернет нулевое значение и false, если канал пуст.
  • Запись в закрытый канал всегда приводит к панике.

Поэтому перед записью в канал нужно быть уверенным, что он не закрыт, или использовать другие механизмы синхронизации.