Можно ли писать в nil канал

«Можно ли писать в nil канал» — вопрос из категории Golang, который задают на 24% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Писать в nil-канал в Go приводит к блокировке навсегда, так как операция записи в nil-канал никогда не выполнится. Это поведение определено в спецификации языка.

Пример:

var ch chan int // nil канал
ch <- 42       // deadlock

Чтение из nil-канала также блокирует горутину навсегда:

var ch chan int
val := <-ch    // deadlock

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