Встречается на 29% собеседований по Go

Что происходит при записи в закрытый канал

При записи в закрытый канал в Go происходит паника (panic). Это защитный механизм, предотвращающий запись в канал, который больше не используется.

Пример:

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

Важные моменты:

  1. Чтение из закрытого канала возможно - будет возвращаться нулевое значение типа и false как второе значение
  2. Повторное закрытие канала также вызывает панику
  3. Лучшая практика - закрывать канал только отправителем и явно документировать, кто отвечает за закрытие
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы