Junior — Middle
Čo sa stane, ak sa pokúsite čítať údaje z kanála, ktorý ešte nebol inicializovaný?
sobes.tech AI
Odpoveď od AI
Ak sa pokúsite čítať údaje z kanála v Go, ktorý nebol inicializovaný (t.j. je nil), operácia čítania bude zablokovaná navždy. To spôsobí, že gorutina, ktorá sa snaží čítať z takého kanála, sa zasekne, pretože kanál neexistuje a nemôže prenášať údaje.
Príklad:
var ch chan int // ch je nil
func main() {
fmt.Println(<-ch) // sa zablokuje navždy
}
Aby ste sa tomu vyhli, je potrebné kanál inicializovať pomocou make, napríklad: ch := make(chan int).