Sobes.tech
Middle+

Co se stane, když napíšete do uzavřeného kanálu v Go?

sobes.tech AI

Odpověď od AI

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

Пример:

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

Важно:

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

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