Sobes.tech
Junior — Middle

Kas notiks, ja veicat rakstīšanas operāciju tukšā (nil) kanālā Go valodā?

sobes.tech AI

Atbilde no AI

Ja mēģināt ierakstīt vērtību nil kanālā Go, programma uz visiem laikiem bloķēsies (deadlock). Tas notiek tāpēc, ka nil kanāls nav inicializēts un nevar pieņemt vai sūtīt vērtības.

Piemērs:

var ch chan int // ch == nil

func main() {
    ch <- 1 // šeit programma iestrēgs
}

Lai izvairītos no tā, kanāls jāinicializē ar make, piemēram:

ch := make(chan int)

Tikai pēc tam ir droši rakstīt un lasīt no kanāla.