Middle+
Dans quelles conditions la lecture du canal sera-t-elle bloquée à jamais ? Que se passe-t-il lors de l'écriture dans un canal nil ? Lors de l'écriture dans un canal fermé ?
sobes.tech IA
Réponse de l'IA
-
La lecture du canal sera bloquée à jamais si le canal est vide et personne ne prévoit d'écrire dedans (par exemple, tous les expéditeurs sont fermés ou absents).
-
L'écriture dans un canal nil (un canal égal à nil) est toujours bloquée à jamais, car le canal nil n'est pas initialisé et ne peut pas accepter de données.
-
L'écriture dans un canal fermé provoque une panique (panic) en Go, car cela est interdit et considéré comme une erreur d'exécution.
Exemple :
var ch chan int // canal nil
// <-ch // la lecture du canal nil est bloquée à jamais
// ch <- 1 // l'écriture dans un canal nil est bloquée à jamais
ch = make(chan int)
close(ch)
// ch <- 2 // panic : envoi sur un canal fermé