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

Если попытаться закрыть неинициализированный (то есть 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.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку