Sobes.tech
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.