Sobes.tech
Junior — Middle

Что случится, если выполнить операцию записи в пустой (nil) канал в языке Go?

sobes.tech AI

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

Если попытаться записать значение в nil-канал в Go, программа заблокируется навсегда (deadlock). Это происходит потому, что nil-канал не инициализирован и не может принимать или отдавать значения.

Пример:

var ch chan int // ch == nil

func main() {
    ch <- 1 // здесь программа зависнет
}

Чтобы избежать этого, канал нужно инициализировать с помощью make, например:

ch := make(chan int)

Только после этого в канал можно безопасно писать и читать.