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