Sobes.tech
Junior — Middle

Какво се случва, ако извършите операция по запис в празен (nil) канал в езика Go?

sobes.tech AI

Отговор от AI

Ако се опитате да запишете стойност в nil канал в Go, програмата ще блокира завинаги (deadlock). Това се случва, защото nil каналът не е инициализиран и не може да приема или изпраща стойности.

Пример:

var ch chan int // ch == nil

func main() {
    ch <- 1 // тук програмата ще блокира
}

За да избегнете това, каналът трябва да бъде инициализиран с make, например:

ch := make(chan int)

Само след това е безопасно да пишете и четете от канала.