Sobes.tech
Junior — Middle

¿Es permitido obtener información de un canal con modo cerrado establecido?

sobes.tech AI

Respuesta de la IA

En Go, si un canal está cerrado, aún se puede seguir recibiendo datos de él hasta que el búfer del canal se vacíe. Después de que se leen todos los datos, las operaciones de lectura adicionales en un canal cerrado devuelven un valor nulo del tipo del canal y una bandera que indica que el canal está cerrado.

Es decir, es posible recibir información de un canal cerrado, pero se debe verificar el segundo valor devuelto para entender si aún hay datos o si el canal está completamente vacío.

Ejemplo:

data, ok := <-ch
if !ok {
    // el canal está cerrado y vacío
}

Intentar enviar datos a un canal cerrado provocará un pánico.