Sobes.tech
Junior — Middle

¿Está permitido enviar datos a un canal que no está abierto para lectura y escritura?

sobes.tech AI

Respuesta de la IA

En Go, no se puede enviar datos a un canal que no está abierto para escritura. Si el canal está cerrado (el cierre se realiza con close(channel)), intentar enviarlo provocará un pánico (panic en tiempo de ejecución).

Sin embargo, es posible leer de un canal cerrado: en ese caso, la lectura devolverá el valor cero del tipo del canal y una bandera que indica que el canal está cerrado.

Ejemplo:

ch := make(chan int)
close(ch)

// Leer de un canal cerrado es seguro
value, ok := <-ch // ok == false

// Enviar a un canal cerrado provocará un pánico
ch <- 1 // panic: send on closed channel

Por lo tanto, solo se pueden enviar datos a canales abiertos.