Junior — Middle
Co se stane, když se pokusíte přečíst data z kanálu, který ještě nebyl inicializován?
sobes.tech AI
Odpověď od AI
Pokud se pokusíte číst data z kanálu v Go, který nebyl inicializován (tedy je nil), operace čtení se navždy zablokuje. To způsobí, že goroutine, která se snaží číst z takového kanálu, se zasekne, protože kanál neexistuje a nemůže přenášet data.
Příklad:
var ch chan int // ch je nil
func main() {
fmt.Println(<-ch) // se navždy zablokuje
}
Abychom se tomu vyhnuli, je třeba kanál inicializovat pomocí make, například: ch := make(chan int).