Sobes.tech
Junior — Middle

Que se passe-t-il si vous essayez de lire des données d'un canal qui n'a pas encore été initialisé?

sobes.tech IA

Réponse de l'IA

Si vous essayez de lire des données d'un canal en Go qui n'a pas été initialisé (c'est-à-dire, qui est nil), l'opération de lecture sera bloquée indéfiniment. Cela entraînera le blocage de la goroutine qui tente de lire de ce canal, car le canal n'existe pas et ne peut pas transmettre de données.

Exemple:

var ch chan int // ch est nil

func main() {
    fmt.Println(<-ch) // se bloque indéfiniment
}

Pour éviter cela, le canal doit être initialisé avec make, par exemple : ch := make(chan int).