Réception et envoi dans une seule instruction de cas
Dans Go, il est possible de combiner des opérations de réception et d'envoi au sein d'une même instruction de cas sélectionné, comme le démontre cet extrait de code :
for { select { ... case ch2 <- (<-ch1): ... } }
Ce code vise à transmettre les résultats du canal ch1 au canal ch2. Cependant, cela soulève la question de savoir sur quelle opération, réception de ch1 ou envoi vers ch2, l'instruction select sélectionne.
Le processus de sélection
Comme expliqué dans le Go documentation, lors de la saisie d'une instruction select :
Implications pour le code donné
Dans l'exemple fourni, les éléments suivants se produit :
case ch2 <- (<-ch1):
Par conséquent, l'instruction select choisit d'envoyer la valeur reçue de ch1 à ch2 ou de gérer un cas différent.
Effet secondaire
Il est important de noter que même si la réception l'opération à partir de ch1 n'est finalement pas sélectionnée, la valeur est toujours consommée et rejetée. Ce comportement peut être significatif et doit être pris en compte lors de l'utilisation de ce modèle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!