Middle+
¿En qué condiciones se bloqueará para siempre la lectura del canal? ¿Qué sucederá al escribir en un canal nil? ¿Al escribir en un canal cerrado?
sobes.tech AI
Respuesta de la IA
-
La lectura del canal se bloqueará para siempre si el canal está vacío y nadie planea escribir en él (por ejemplo, todos los remitentes están cerrados o no hay ninguno).
-
La escritura en un canal nil (un canal igual a nil) siempre se bloquea para siempre, ya que el canal nil no está inicializado y no puede aceptar datos.
-
La escritura en un canal cerrado provoca un pánico (panic) en Go, ya que esto está prohibido y se considera un error en tiempo de ejecución.
Ejemplo:
var ch chan int // canal nil
// <-ch // la lectura del canal nil se bloquea para siempre
// ch <- 1 // la escritura en un canal nil se bloquea para siempre
ch = make(chan int)
close(ch)
// ch <- 2 // panic: envío en un canal cerrado