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 correspondantesPar exemple, lorsqu'un canal c1 est écrit avec une donnéeCette 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é.
c1 := make(chan string, 1)c1 <- "Hello World!"
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")}
Case 1 is selected
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!