Sobes.tech
Junior — Middle

Que se passe-t-il si vous effectuez une opération d'écriture sur un canal vide (nil) en Go?

sobes.tech IA

Réponse de l'IA

Si vous essayez d'écrire une valeur dans un canal nil en Go, le programme se bloquera indéfiniment (deadlock). Cela se produit parce que le canal nil n'est pas initialisé et ne peut pas accepter ou envoyer des valeurs.

Exemple:

var ch chan int // ch == nil

func main() {
    ch <- 1 // ici, le programme se bloquera
}

Pour éviter cela, le canal doit être initialisé avec make, par exemple:

ch := make(chan int)

Ce n'est qu'après cela que vous pouvez écrire et lire en toute sécurité dans le canal.