Sobes.tech
Junior — Middle

Est-il permis d'obtenir des informations d'un canal avec un mode fermé activé?

sobes.tech IA

Réponse de l'IA

En Go, si un canal est fermé, on peut continuer à recevoir des données de celui-ci jusqu'à ce que le tampon du canal soit vide. Après avoir lu toutes les données, les opérations de lecture supplémentaires sur un canal fermé renvoient une valeur nulle du type du canal et un indicateur indiquant que le canal est fermé.

Autrement dit, il est possible de recevoir des informations d'un canal fermé, mais il faut vérifier le deuxième paramètre retourné pour comprendre s'il reste encore des données ou si le canal est complètement vide.

Exemple:

data, ok := <-ch
if !ok {
    // le canal est fermé et vide
}

Tenter d'envoyer des données à un canal fermé provoquera une panique.