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