Senior
Kas vyksta įrašant į neįdiegto (nil) kanalo?
sobes.tech AI
Atsakymas iš AI
Go kalboje rašymas į neįdiegto (nil) kanalo sukelia gorutinos užblokavimą amžinai, nes nil-kanalas nėra pasiruošęs priimti ar siųsti duomenis.
Pavyzdys:
var ch chan int // ch == nil
func main() {
ch <- 1 // amžinai užblokuojama, nes kanalas nil
}
Šis elgesys kartais naudojamas dinamiškai įjungti/išjungti kanalus select'e, nes operacijos su nil-kanalu niekada nevykdomos ir blokuoja gorutinas.