Sobes.tech
Back to questions
Senior
9

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

Companies where asked
I-teco

Answer from AI

sobes.tech AI

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

Пример:

var ch chan int // ch == nil

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

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