Sobes.tech
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
}