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.