Junior — Middle
È consentito inviare dati a un canale che non è aperto alla lettura e alla scrittura?
sobes.tech AI
Risposta dell'AI
In Go, non è possibile inviare dati a un canale che non è aperto per la scrittura. Se il canale è chiuso (chiusura tramite close(channel)), tentare di inviarvi dati provocherà un panic (panic in runtime).
Tuttavia, è possibile leggere da un canale chiuso: in questo caso, la lettura restituirà il valore zero del tipo del canale e un flag che indica che il canale è chiuso.
Esempio:
ch := make(chan int)
close(ch)
// La lettura da un canale chiuso è sicura
value, ok := <-ch // ok == false
// L'invio a un canale chiuso provocherà un panic
ch <- 1 // panic: send on closed channel
Pertanto, è possibile inviare dati solo ai canali aperti.