Sobes.tech
Senior

Kas notiek, rakstot neiniilizētā (nil) kanālā?

sobes.tech AI

Atbilde no AI

Go valodā rakstīšana uz neizveidota (nil) kanāla noved pie gorutīnas mūžīgas bloķēšanas, jo nil-kanāls nav gatavs saņemt vai sūtīt datus.

Piemērs:

var ch chan int // ch == nil

func main() {
    ch <- 1 // tiek bloķēts uz mūžu, jo kanāls ir nil
}

Šī uzvedība dažreiz tiek izmantota, lai dinamiski ieslēgtu/izslēgtu kanālus select, jo operācijas ar nil-kanālu nekad netiek izpildītas un bloķē gorutīnu.