Sobes.tech
Junior — Middle

Co se stane, když provedete zápisovou operaci do prázdného (nil) kanálu v jazyce Go?

sobes.tech AI

Odpověď od AI

Pokud se pokusíte zapsat hodnotu do nil kanálu v Go, program se navždy zablokuje (deadlock). K tomu dochází, protože nil kanál není inicializován a nemůže přijímat ani odesílat hodnoty.

Příklad:

var ch chan int // ch == nil

func main() {
    ch <- 1 // zde se program zablokuje
}

Abychom se tomu vyhnuli, je třeba kanál inicializovat pomocí make, například:

ch := make(chan int)

Teprve poté je možné bezpečně psát a číst z kanálu.