Sobes.tech
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).