Sobes.tech
Junior — Middle
136

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

Сұралған компаниялар
Магнит Тех
ГазпромбанкГазпромбанк

AI-дан жауап

sobes.tech AI

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

Пример:

var ch chan int // ch == nil

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

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

ch := make(chan int)

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