Sobes.tech
Junior — Middle

Cosa succede in un programma se si tenta di leggere da un canale chiuso in Go?

sobes.tech AI

Risposta dell'AI

Se si tenta di leggere da un canale chiuso in Go, l'operazione di lettura restituirà un valore zero del tipo del canale e false nel secondo valore restituito, se si utilizza la sintassi con due valori di ritorno:

v, ok := <-ch

Qui, ok sarà false, il che significa che il canale è chiuso e non arriveranno più dati.

Se si legge da un canale chiuso senza verificare ok, si otterrà un valore zero del tipo del canale (ad esempio, 0 per int).

Importante: leggere da un canale chiuso non blocca e non provoca panic, ma restituisce immediatamente un valore zero e false.