Junior — Middle
Comment fonctionne le mécanisme de lecture des données à partir d'un canal fermé et que se passe-t-il à ce moment-là?
sobes.tech IA
Réponse de l'IA
En Go, la lecture d'un canal est une opération qui bloque la goroutine appelante jusqu'à ce que des données apparaissent dans le canal ou que celui-ci soit fermé.
Si le canal est fermé et qu'il n'y a plus de données, la lecture renvoie une valeur nulle du type du canal et un indicateur indiquant que le canal est fermé. Cela permet de déterminer qu'il n'y aura pas de données supplémentaires.
Exemple:
ch := make(chan int)
close(ch)
value, ok := <-ch
if !ok {
fmt.Println("Le canal est fermé, pas de données")
}
Ainsi, lors de la lecture d'un canal fermé, la goroutine ne se bloque pas, mais reçoit un signal de fermeture, ce qui permet de terminer correctement le travail avec le canal.