Middle+
¿Quién debe cerrar el canal?
sobes.tech AI
Respuesta de la IA
Quien creó el canal debe cerrarlo y ya no tiene intención de enviar datos a través de él. Esto es importante para evitar pánicos al intentar enviar datos a un canal cerrado y para que los receptores puedan determinar correctamente el final del flujo de datos.
Reglas principales:
- El remitente cierra el canal cuando ya no enviará más valores.
- Los receptores no deben cerrar el canal.
- El cierre del canal indica a los receptores que no habrá más datos.
Ejemplo:
func productor(ch chan<- int) {
for i := 0; i < 5; i++ {
ch <- i
}
close(ch) // Cerramos el canal después de enviar todos los datos
}
func consumidor(ch <-chan int) {
for val := range ch {
fmt.Println(val)
}
// Cuando el canal está cerrado, el ciclo termina
}
func main() {
ch := make(chan int)
go productor(ch)
consumidor(ch)
}