Junior — Middle
Ce se întâmplă dacă încerci să citești date dintr-un canal care nu a fost încă inițializat?
sobes.tech AI
Răspuns de la AI
Dacă încerci să citești date dintr-un canal în Go care nu a fost inițializat (adică, este nil), operațiunea de citire se va bloca pentru totdeauna. Acest lucru va face ca goroutine-ul care încearcă să citească dintr-un astfel de canal să se blocheze, deoarece canalul nu există și nu poate transmite date.
Exemplu:
var ch chan int // ch este nil
func main() {
fmt.Println(<-ch) // se blochează pentru totdeauna
}
Pentru a evita acest lucru, canalul trebuie inițializat cu make, de exemplu: ch := make(chan int).