Junior — Middle
Se pot trimite date către un canal care are valoarea nil?
sobes.tech AI
Răspuns de la AI
În Go, nu poți trimite date către un canal dacă acesta este nil. Încercarea de a trimite o valoare către un canal nil va duce la blocarea goroutine-ului pentru totdeauna, deoarece un astfel de canal nu este inițializat și nu poate primi date.
Exemplu:
var ch chan int // ch == nil
go func() {
ch <- 1 // se blochează pentru totdeauna
}()
// programul va rămâne blocat
Pentru a evita blocarea, trebuie să inițializezi canalul înainte de utilizare:
ch := make(chan int)
ch <- 1 // funcționează corect
Dacă canalul poate fi nil, verifică valoarea sa înainte de a trimite date sau folosește select cu default pentru a evita blocarea.