Golang velg samtale

Golang velg samtale
Golang Select Call refererer til en bryterklæring som brukes i kanalkommunikasjon. Det lar deg vente på flere kanaloperasjoner, for eksempel å sende eller motta.

Det er ikke noe komplekst med de utvalgte samtalene i Go.

Syntaksen ligner på en bryterklæring som:

plukke ut
Case Channeloperation:
//
Case Channeloperation2:
//
Sak Channeoperation3:
//
misligholde:
// Standard sak

Golang Select

Tenk på følgende kodeeksempel som illustrerer hvordan du bruker GO SELECT -samtalen.

pakkehoved
Importer "FMT"
func main ()
Channel1: = Make (Chan String)
Channel2: = Make (Chan String)
gå func ()
kanal1 <- "channel 1"
()
gå func ()
Channel2 <- "channel 2"
()
plukke ut
sak msg11: = <-channel1:
fmt.Println ("Melding mottatt fra:", MSG11)
sak msg2: = <-channel2:
fmt.Println ("Melding mottatt fra:", MSG2)

Hvis vi kjører den forrige koden, merker du at vi får en annen utgang på hver kjøring. SELECT -setningen velger noen utdata hvis alle sakene er klare.

Vi kan velge et standardkasse ved å bruke standard nøkkelord for å forhindre at SELECT -samtalen blokkerer hovedgoroutine.

Et eksempel er som vist:

pakkehoved
Importer "FMT"
func main ()
Channel1: = Make (Chan String)
Channel2: = Make (Chan String)
gå func ()
kanal1 <- "channel 1"
()
gå func ()
Channel2 <- "channel 2"
()
plukke ut
sak msg11: = <-channel1:
fmt.Println ("Melding mottatt fra:", MSG11)
sak msg2: = <-channel2:
fmt.Println ("Melding mottatt fra:", MSG2)
misligholde:
fmt.Println ("Goroutines er ikke klare!")

Det forrige programmet vil kjøre standardsaken siden goroutinene er klare og har gitt ingen utdata.

Konklusjon

Vi kan bruke Go Select Call for å selektivt hente data fra flere kanaler. SELECT -samtalen vil tilfeldig velge dataene hvis alle leverandørene er klare. Hvis ingen er klare, utfører vi standardsaken. Vi håper du fant denne artikkelen. Sjekk ut andre Linux -hint -artikler for flere tips og informasjon.