Junior — Middle
¿En qué se diferencia obtener un valor nulo de un canal cerrado de obtener el mismo valor al crear un canal por cuenta propia y enviar datos a él?
sobes.tech AI
Respuesta de la IA
En Go, al leer de un canal, si el canal está cerrado y no hay más datos, la operación de lectura devuelve el valor cero del tipo del canal y false en el segundo valor devuelto (si se usa la sintaxis v, ok := <-ch). Esto indica que el canal está cerrado y no habrá más datos.
Si, en cambio, creas un canal, envías un valor nulo y lo lees, la operación de lectura devolverá ese valor nulo, pero ok será true, ya que el canal está abierto y se han recibido datos.
Resumen:
- Canal cerrado sin datos: la lectura devuelve el valor cero +
ok == false. - Canal abierto con valor nulo: la lectura devuelve el valor nulo +
ok == true.
Esto permite distinguir entre el valor nulo real y la señal de cierre del canal.