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.