Sobes.tech
Junior — Middle

¿Cómo se puede finalizar la lectura de datos de un canal en programación?

sobes.tech AI

Respuesta de la IA

En Go, para finalizar la lectura de un canal, generalmente se cierra el canal usando la función close(). Cuando el canal está cerrado, intentar leer de él devuelve un valor cero y false en el segundo valor, lo que permite detectar el fin de los datos.

Ejemplo:

ch := make(chan int)
go func() {
    for i := 0; i < 5; i++ {
        ch <- i
    }
    close(ch) // señalamos que ya no hay más datos
}()

for val := range ch {
    fmt.Println(val) // lee hasta que el canal se cierra
}

En este ejemplo, el ciclo for val := range ch terminará automáticamente cuando el canal esté cerrado y se hayan leído todos los datos.