Junior — Middle
¿Con qué frecuencia es necesario cerrar un canal en Go para evitar errores?
sobes.tech AI
Respuesta de la IA
En Go, es necesario cerrar un canal exactamente una vez, cuando ya no se planea enviar más datos a través de él. Cerrar el canal varias veces provocará un pánico (runtime panic).
Importante:
- La persona que escribe en el canal debe cerrarlo, no la que lee.
- Si el canal se usa para transferir datos entre goroutines, cerrar el canal indica que no habrá más datos.
Ejemplo:
ch := make(chan int)
func() {
defer close(ch) // cerramos el canal una vez
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val)
}
En este ejemplo, el canal se cierra una vez después de enviar todos los valores.