Junior — Middle
Kas notiks, ja mēģināsiet lasīt datus no kanāla, kas vēl nav inicializēts?
sobes.tech AI
Atbilde no AI
Ja mēģināt lasīt datus no kanāla Go, kas nav inicializēts (t.i., ir nil), lasīšanas operācija tiks bloķēta uz mūžīgiem laikiem. Tas novedīs pie tā, ka gorutīna, kas mēģina lasīt no šāda kanāla, apstāsies, jo kanāls neeksistē un nevar pārraidīt datus.
Piemērs:
var ch chan int // ch ir nil
func main() {
fmt.Println(<-ch) // tiek bloķēts uz mūžīgiem laikiem
}
Lai izvairītos no tā, kanāls jāinicializē ar make, piemēram: ch := make(chan int).