Junior — Middle
¿Se pueden enviar datos a un canal que tiene un valor nil?
sobes.tech AI
Respuesta de la IA
En Go, no se puede enviar datos a un canal si este es nil. Intentar enviar un valor a un canal nil provocará que la goroutine quede bloqueada indefinidamente, ya que dicho canal no está inicializado y no puede aceptar datos.
Ejemplo:
var ch chan int // ch == nil
go func() {
ch <- 1 // se bloquea para siempre
}()
// el programa se quedará colgado
Para evitar el bloqueo, antes de usar el canal, se debe inicializar:
ch := make(chan int)
ch <- 1 // funciona correctamente
Si el canal puede ser nil, antes de enviar, se debe verificar su valor o usar select con default para evitar bloqueos.