Sobes.tech
Junior — Middle

Que se passe-t-il dans un programme si vous essayez de lire à partir d'un canal fermé en Go?

sobes.tech IA

Réponse de l'IA

Si vous essayez de lire à partir d'un canal fermé en Go, l'opération de lecture renverra une valeur zéro du type du canal et false dans la deuxième valeur retournée, si vous utilisez la syntaxe avec deux valeurs de retour:

v, ok := <-ch

Ici, ok sera false, ce qui signifie que le canal est fermé et qu'aucune donnée supplémentaire ne sera reçue.

Si vous lisez à partir d'un canal fermé sans vérifier ok, vous obtiendrez une valeur zéro du type du canal (par exemple, 0 pour int).

Important : la lecture d'un canal fermé ne bloque pas et ne provoque pas de panic, elle retourne immédiatement une valeur zéro et false.