Sobes.tech
Senior

¿Qué sucede al escribir en un canal no inicializado (nil)?

sobes.tech AI

Respuesta de la IA

En Go, escribir en un canal no inicializado (nil) conduce a bloquear la goroutine indefinidamente, ya que un canal nil no está listo para recibir ni enviar datos.

Ejemplo:

var ch chan int // ch == nil

func main() {
    ch <- 1 // se bloquea indefinidamente, ya que el canal es nil
}

Este comportamiento se usa a veces para habilitar/deshabilitar dinámicamente canales en select, ya que las operaciones con canales nil nunca se ejecutan y bloquean la goroutine.