Если попытаться закрыть неинициализированный (то есть nil) канал в Go, программа вызовет панику (panic) с сообщением close of nil channel.
Что будет, если попытаться закрыть неинициализированный канал?
Если попытаться закрыть неинициализированный (то есть nil) канал в Go, программа вызовет панику (panic) с сообщением close of nil channel.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Если попытаться закрыть неинициализированный (то есть nil) канал в Go, программа вызовет панику (panic) с сообщением close of nil channel.
Это связано с тем, что закрывать можно только инициализированные каналы, а nil канал не существует в памяти и не может быть закрыт.
Пример:
var ch chan int // ch == nil
close(ch) // panic: close of nil channel
Чтобы избежать паники, перед закрытием канала нужно убедиться, что он не равен nil.