Junior — Middle
Ce se întâmplă dacă efectuați o operație de scriere într-un canal gol (nil) în Go?
sobes.tech AI
Răspuns de la AI
Dacă încerci să scrii o valoare într-un canal nil în Go, programul se va bloca pentru totdeauna (deadlock). Acest lucru se întâmplă deoarece canalul nil nu este inițializat și nu poate primi sau trimite valori.
Exemplu:
var ch chan int // ch == nil
func main() {
ch <- 1 // aici programul se va bloca
}
Pentru a evita acest lucru, canalul trebuie inițializat cu make, de exemplu:
ch := make(chan int)
Numai după aceasta, se poate scrie și citi în siguranță din canal.