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).