Sobes.tech
Senior

Que se passe-t-il lors de l'écriture dans un canal non initialisé (nil) ?

sobes.tech IA

Réponse de l'IA

En Go, écrire dans un canal non initialisé (nil) entraîne le blocage de la goroutine indéfiniment, car un canal nil n'est pas prêt à recevoir ou à envoyer des données.

Exemple:

var ch chan int // ch == nil

func main() {
    ch <- 1 // se bloque indéfiniment, car le canal est nil
}

Ce comportement est parfois utilisé pour activer/désactiver dynamiquement des canaux dans select, car les opérations avec un canal nil ne s'exécutent jamais et bloquent la goroutine.