Die ausgewählten Anrufe in Go haben nichts Komplexes.
Die Syntax ähnelt einer Switch -Anweisung als:
wählen
Fallkanaloperation:
//
Case Channeloperation2:
//
Case Channeoperation3:
//
Standard:
// Standardfall
Golang select
Betrachten Sie das folgende Codebeispiel.
Paket Main
importieren "fmt"
func main ()
Kanal1: = make (chan String)
Kanal2: = make (chan String)
go func ()
Kanal 1 <- "channel 1"
())
go func ()
Channel2 <- "channel 2"
())
wählen
Fall MSG11: = <-channel1:
fmt.Println ("Nachricht erhalten von:", msg11)
Fall MSG2: = <-channel2:
fmt.Println ("Nachricht erhalten von:", msg2)
Wenn wir den vorherigen Code ausführen, bemerken Sie, dass wir bei jedem Lauf eine andere Ausgabe erhalten. Die Auswahlauswahl wählt eine Ausgabe aus, wenn alle Fälle fertig sind.
Wir können einen Standardfall mithilfe des Standard -Schlüsselworts auswählen, um zu verhindern.
Ein Beispiel ist wie gezeigt:
Paket Main
importieren "fmt"
func main ()
Kanal1: = make (chan String)
Kanal2: = make (chan String)
go func ()
Kanal 1 <- "channel 1"
())
go func ()
Channel2 <- "channel 2"
())
wählen
Fall MSG11: = <-channel1:
fmt.Println ("Nachricht erhalten von:", msg11)
Fall MSG2: = <-channel2:
fmt.Println ("Nachricht erhalten von:", msg2)
Standard:
fmt.Println ("Goroutines sind nicht fertig!"))
Das vorherige Programm wird den Standardfall ausführen, da die Goroutinen fertig sind und keine Ausgabe zurückgegeben haben.
Abschluss
Wir können den Go Select -Anruf verwenden, um Daten aus mehreren Kanälen selektiv abzurufen. Der Anruf auswählen wählt zufällig die Daten aus, wenn alle Anbieter bereit sind. Wenn keines bereit ist, führen wir den Standardfall aus. Wir hoffen, Sie haben diesen Artikel gefunden. Weitere Tipps und Informationen finden Sie in anderen Linux -Hinweisartikeln.