Senior
Ce se întâmplă atunci când se scrie într-un canal neinițializat (nil)?
sobes.tech AI
Răspuns de la AI
În Go, scrierea într-un canal neinițializat (nil) duce la blocarea goroutine-ului pentru totdeauna, deoarece canalul nil nu este gata să primească sau să trimită date.
Exemplu:
var ch chan int // ch == nil
func main() {
ch <- 1 // se blochează pentru totdeauna, deoarece canalul este nil
}
Acest comportament este uneori folosit pentru a activa/dezactiva dinamic canalele în select, deoarece operațiile cu canaluri nil nu se execută niciodată și blochează goroutine-ul.