Sobes.tech
Junior — Middle

¿Qué comportamiento se espera si se intenta cerrar un canal que ya ha sido cerrado anteriormente?

sobes.tech AI

Respuesta de la IA

En Go, intentar cerrar un canal que ya está cerrado conduce a un pánico (panic).

El canal solo se puede cerrar una vez, para indicar que no se enviarán más valores.

Si se llama a close(ch) repetidamente para el mismo canal, el programa terminará abruptamente con un error.

Ejemplo:

ch := make(chan int)
close(ch)       // correcto
close(ch)       // panic: close of closed channel

Por lo tanto, es importante controlar que el canal solo se cierre una vez.