Junior — Middle
¿En qué parte del código es necesario cerrar el canal?
sobes.tech AI
Respuesta de la IA
En Go, el canal debe cerrarse en el lugar donde se crea y donde ya no se planea enviar más datos. Normalmente, esto lo hace el remitente para señalar a los receptores que no habrá más datos.
Importante:
- Los receptores pueden verificar el cierre del canal al leer.
- Solo el remitente debe cerrar el canal para evitar pánicos.
Ejemplo:
ch := make(chan int)
func() {
defer close(ch) // cerramos el canal después de enviar todos los datos
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // recibimos datos hasta que el canal se cierre
}