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.