Senior
Cosa succede durante la lettura e la scrittura in un canale chiuso?
sobes.tech AI
Risposta dell'AI
In Go, lavorando con i canali:
-
Lettura da un canale chiuso: Se il canale è chiuso e non ci sono dati, l’operazione di lettura restituisce il valore zero del tipo del canale e
falsenel secondo valore restituito (se usato), indicando che il canale è chiuso. -
Scrittura in un canale chiuso: Tentare di scrivere in un canale chiuso provoca un panic (
panic). Questo è un errore a runtime.
Esempio:
ch := make(chan int)
close(ch)
// Lettura
v, ok := <-ch // ok == false, v == 0
// Scrittura
ch <- 1 // panic: send on closed channel
Pertanto, un canale chiuso può essere letto in modo sicuro finché contiene dati, ma non si può scrivere.