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.