Sobes.tech
Назад к вопросам
Senior
7

Что происходит при записи в неинициализированный (nil) канал?

Компании, где спрашивали
I-teco

Ответ от нейросети

sobes.tech AI

В Go запись в неинициализированный (nil) канал приводит к блокировке горутины навсегда, так как nil-канал не готов принимать или отдавать данные.

Пример:

var ch chan int // ch == nil

func main() {
    ch <- 1 // блокируется навсегда, так как канал nil
}

Это поведение используется иногда для динамического включения/отключения каналов в select, поскольку операции с nil-каналом никогда не выполняются и блокируют горутину.