Il n'y a rien de complexe dans les appels sélectionnés dans Go.
La syntaxe est similaire à une instruction Switch comme:
sélectionner
ChannelOperation de cas:
//
Case ChannelOperation2:
//
Cas ChanneOperation3:
//
défaut:
// Cas par défaut
Golang Select
Considérez l'exemple de code suivant qui illustre comment utiliser l'appel Go Select.
package principal
Importer "FMT"
func main ()
canal1: = make (chan string)
canal2: = make (chan string)
aller func ()
canal1 <- "channel 1"
()
aller func ()
canal2 <- "channel 2"
()
sélectionner
cas msg11: = <-channel1:
fmt.Println ("Message reçue à partir de:", msg11)
cas msg2: = <-channel2:
fmt.Println ("Message reçue à partir de:", msg2)
Si nous exécutons le code précédent, vous remarquez que nous obtenons une sortie différente à chaque exécution. L'instruction SELECT choisit une sortie si tous les cas sont prêts.
Nous pouvons sélectionner un cas par défaut en utilisant le mot-clé par défaut pour empêcher l'appel de sélection de bloquer le goroutine principal.
Un exemple est comme indiqué:
package principal
Importer "FMT"
func main ()
canal1: = make (chan string)
canal2: = make (chan string)
aller func ()
canal1 <- "channel 1"
()
aller func ()
canal2 <- "channel 2"
()
sélectionner
cas msg11: = <-channel1:
fmt.Println ("Message reçue à partir de:", msg11)
cas msg2: = <-channel2:
fmt.Println ("Message reçue à partir de:", msg2)
défaut:
fmt.Println ("Les Goroutines ne sont pas prêts!")
Le programme précédent exécutera le cas par défaut car les Goroutines sont prêts et n'ont retourné aucune sortie.
Conclusion
Nous pouvons utiliser l'appel Go Select pour récupérer sélectivement les données de plusieurs canaux. L'appel de sélection sélectionnera au hasard les données si tous les fournisseurs sont prêts. Si aucun n'est prêt, nous exécutons le cas par défaut. Nous espérons que vous avez trouvé cet article. Consultez d'autres articles sur les conseils Linux pour plus de conseils et d'informations.