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.