Maison > développement back-end > Golang > le corps du texte

À propos de la compréhension de select dans Golang

藏色散人
Libérer: 2020-08-26 11:46:45
avant
2848 Les gens l'ont consulté
Vous trouverez ci-dessous

Tutoriel Golang colonne pour présenter la compréhension de Select dans Golang, j'espère aider les amis dans le besoin !

À propos de la compréhension de select dans Golang

La syntaxe de l'instruction Select et de l'instruction Switch est très similaire, mais le Case in Select doit être une opération de communication (une opération Channel). La logique d'exécution est la suivante :

Quelle opération de canal derrière le cas peut être exécutée avec succès, puis exécutez le bloc de code sous le cas . Si plusieurs cas peuvent être exécutés avec succès en même temps, l'un d'eux est sélectionné au hasard. Si aucun des cas ne peut être exécuté avec succès, le bloc de code par défaut est exécuté. S'il n'y a pas de valeur par défaut, il bloquera et renverra une erreur de blocage.

Surveiller les opérations IO et lorsque des opérations IO se produisent, déclencher les actions correspondantes

Cette déclaration est correcte. La surveillance des opérations IO (du canal) et la prise des actions correspondantes sont en effet des scénarios d'application sélectionnés. mais ne pensez pas à tort que l'instruction Select sélectionne le cas dans lequel l'opération Channel est exécutée ! Cette compréhension est fausse ! Ce que Select sélectionnera en fait, c'est le cas dans lequel l'opération Channel peut être exécutée avec succès, puis le bloc de code dans ce cas sera exécuté.

Par exemple, lorsqu'un canal c1 est écrit avec une donnée

c1 := make(chan string, 1)c1 <- "Hello World!"
Copier après la connexion

Si nous avons l'instruction de jugement Select suivante

select {
    case <-c1:
        fmt.Println("Case 1 is selected")
    case c1<-"Hello World!":
        fmt.Println("Case 2 is selected")
    default :
        fmt.Println("Default is selected")}
Copier après la connexion

vous obtiendrez ce qui suit result

Case 1 is selected
Copier après la connexion

Parce que c1 a été écrit avec une donnée, nous pouvons réussir à "lire une donnée de c1". Autrement dit, le premier cas peut être exécuté avec succès. Par conséquent, le bloc de code du premier cas est finalement exécuté.

                                                                                                                                   

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!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal