Sobes.tech
Junior — Middle

Čo sa stane, ak vykonáte zápisovú operáciu do prázdneho (nil) kanála v jazyku Go?

sobes.tech AI

Odpoveď od AI

Ak sa pokúsite zapísať hodnotu do nil kanála v Go, program sa navždy zablokuje (deadlock). K tomu dochádza, pretože nil kanál nie je inicializovaný a nemôže prijímať ani odosielať hodnoty.

Príklad:

var ch chan int // ch == nil

func main() {
    ch <- 1 // tu sa program zablokuje
}

Aby ste sa tomu vyhli, kanál je potrebné inicializovať pomocou make, napríklad:

ch := make(chan int)

Až potom je možné bezpečne písať a čítať z kanála.