Golang Select Call

Golang Select Call
La chiamata Select Golang si riferisce a un'istruzione Switch utilizzata nella comunicazione del canale. Ti consente di attendere più operazioni del canale, ad esempio per inviare o ricevere.

Non c'è nulla di complesso nelle chiamate selezionate in Go.

La sintassi è simile a un'istruzione switch come:

Selezionare
Caso operatore di case:
//
Case Channeloperation2:
//
Case Channeoperation3:
//
predefinito:
// Caso predefinito

Golang Select

Considera il seguente esempio di codice che illustra come utilizzare la chiamata di selezione Go.

Pacchetto principale
Importa "FMT"
func main ()
Channel1: = make (Chan String)
Channel2: = make (chan String)
go func ()
Channel1 <- "channel 1"
()
go func ()
Channel2 <- "channel 2"
()
Selezionare
Caso MSG11: = <-channel1:
fmt.Println ("Messaggio ricevuto da:", msg11)
case msg2: = <-channel2:
fmt.Println ("Messaggio ricevuto da:", msg2)

Se eseguiamo il codice precedente, noti che otteniamo un output diverso su ogni esecuzione. L'istruzione SELECT sceglie qualsiasi output se tutti i casi sono pronti.

Possiamo selezionare un caso predefinito utilizzando la parola chiave predefinita per evitare che la chiamata seleziona bloccare la goroutine principale.

Un esempio è come mostrato:

Pacchetto principale
Importa "FMT"
func main ()
Channel1: = make (Chan String)
Channel2: = make (chan String)
go func ()
Channel1 <- "channel 1"
()
go func ()
Channel2 <- "channel 2"
()
Selezionare
Caso MSG11: = <-channel1:
fmt.Println ("Messaggio ricevuto da:", msg11)
case msg2: = <-channel2:
fmt.Println ("Messaggio ricevuto da:", msg2)
predefinito:
fmt.Println ("le goroutine non sono pronte!")

Il programma precedente eseguirà il caso predefinito poiché le goroutine sono pronte e non hanno restituito alcun output.

Conclusione

Possiamo utilizzare la chiamata Seleziona GO per recuperare selettivamente i dati da più canali. La chiamata di selezione selezionerà casualmente i dati se tutti i provider sono pronti. Se nessuno è pronto, eseguiamo il caso predefinito. Speriamo che tu abbia trovato questo articolo. Dai un'occhiata ad altri articoli di suggerimento Linux per ulteriori suggerimenti e informazioni.