Отправка в закрытый канал Go вызывает panic: send on closed channel. Буфер и наличие получателя не делают такую отправку допустимой.
Что будет, если попробовать записать в закрытый канал?
Отправка в закрытый канал Go вызывает panic: send on closed channel. Буфер и наличие получателя не делают такую отправку допустимой.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Отправка в закрытый канал Go вызывает panic: send on closed channel. Буфер и наличие получателя не делают такую отправку допустимой.
Закрытие означает, что новых значений больше не будет. Получатели ещё могут вычитать буфер, а затем получат нулевое значение и ok=false. Предварительная проверка «закрыт ли канал» не устраняет гонку между проверкой и отправкой. Нужно согласовать жизненный цикл: канал закрывает владелец после завершения всех отправителей.