Kako uporabljati izjavo Select v Golangu?

Kako Uporabljati Izjavo Select V Golangu



A izberite izjavo v Golang razvijalcem omogoča sinhronizacijo in komunikacijo med rutinami, kanali in podatkovnimi tokovi Go. Programu Go omogoča, da čaka na več operacij kanala hkrati in izvede prvo operacijo, ki je pripravljena.

V tem članku bomo raziskali, kako uporabljati izberite izjavo v Golangu in navedite primere, ki vam bodo pomagali doseči vzporednost, sočasnost in sinhronizacijo v programih Go.

Kako uporabljati izjavo Select v Golangu?

Podobno kot stavek switch, je izberite izjavo nam omogoča, da izberemo in izvedemo en izraz med številnimi izrazi, vendar je glavna razlika med izberite in stikalo je to izberite izjavo deluje po principu čakanja, kar pomeni, da je izberite izjavo se ne bo izvršil, dokler komunikacija ni končana.







Tu se komunikacija nanaša na pošiljanje in prejemanje podatkov prek katerega koli kanala. Ko je komunikacija končana, se izvede naslednje preverjanje, ki nam omogoča, da vidimo, da je izbrani stavek jezika Go v celoti odvisen od kanala.



Sintaksa za izjavo Select

Preprosta sintaksa, uporabljena za izberite izjavo uporaba jezika Go je prikazana spodaj:



izberite {
Ovitek kanal_1 :
// koda za izvedbo, ko je kanal_1 pripravljen
Ovitek kanal_2 :
// koda za izvedbo, ko je kanal_2 pripravljen
Ovitek kanal_3 :
// koda za izvedbo, ko je kanal_3 pripravljen
Ovitek kanal_4 :
// koda za izvedbo, ko je kanal_4 pripravljen
privzeto :
// koda za izvedbo, če nobeden od kanalov ni pripravljen
}

Tukaj:





  • Znotraj a izberite izjavo , vsak primer predstavlja operacijo kanala, ki je lahko operacija sprejema ali operacija pošiljanja.
  • The izberite izjavo počaka, da je eden od primerov pripravljen, nato pa ga zažene in povezan stavek primera.
  • Naključno izbere kanal, če je več kanalov pripravljenih za izvedbo.

Kako ustvariti kanal v Golangu

Za ustvarjanje kanala v Go lahko uporabniki uporabijo funkcijo make, ki ji sledi kan ključno besedo in določite vrsto kanala, ki je lahko int, niz ali drugo.

pogl := narediti ( vrsta chan )

Izvedite izjavo Select v Golangu

Tukaj bomo ponudili več primerov, ki vam bodo pomagali pri učenju osnov uporabe izberite izjavo v Golangu.



Primer 1

Naslednji primer izberite izjavo prikazuje, kako deluje, ko sta oba kanala pripravljena za izvedbo.

glavni paket

uvoz 'fmt'

glavna funkcija ( ) {

na enem := narediti ( kan int )

str := narediti ( chan niz )

pojdi chan_num ( na enem )

pojdi chan_str ( str )

izberite {

Ovitek Ch1 := <- na enem :

fmt. Println ( 'Podatki kanala:' , Ch1 )

Ovitek Ch2 := <- str :

fmt. Println ( 'Podatki kanala:' , Ch2 )

}

}

func chan_num ( num chan int ) {

na enem <- 67

}

func chan_str ( niz str chan ) {

str <- 'Linux'

}

V zgornjem primeru smo ustvarili dva kanala, na enem, in str in uporabili smo funkcije Go chan_num() za pošiljanje podatkov na num kanal in chan_str() za pošiljanje podatkov v kanal str. Ker program vsebuje dva različna kanala, smo uporabili izberite izjavo usmrtiti enega od njih.

Ovitek Ch1 prebere vrednost iz num kanal in ga prikaže. Podobno primer Ch2 vrne vrednost iz str kanal. Zgornji program vrne izhod kanala, ki je pripravljen za uporabo. Izhod

Primer 2

Če želite kanalu dodati zakasnitev in vrniti izhod drugega kanala, lahko uporabite time.sleep() funkcijo na določenem kanalu. To vam omogoča, da na konzolo natisnete izhod drugega kanala. Tukaj je primer takega primera.

glavni paket

uvoz (

'fmt'

'čas'

)

glavna funkcija ( ) {

na enem := narediti ( kan int )

str := narediti ( chan niz )

pojdi chan_num ( na enem )

pojdi chan_str ( str )

izberite {

Ovitek Ch1 := <- na enem :

fmt. Println ( 'Podatki kanala:' , Ch1 )

Ovitek Ch2 := <- str :

fmt. Println ( 'Podatki kanala:' , Ch2 )

}

}

func chan_num ( num chan int ) {

na enem <- 67

}

func chan_str ( niz str chan ) {

čas . spi ( 5 * čas . drugič )

str <- 'Linux'

}

V zgornji kodi smo uporabili čas.Spanje() funkcijo znotraj chan_str() funkcijo. Samo kanal num je pripravljen za izvedbo prvih 5 sekund. Kot rezultat, izberite izjavo teče primer Ch1 .

Izhod

Opomba: Zakasnitev lahko dodate obema kanaloma, da zakasnite izvajanje kanalov.

Zaključek

The izberite izjavo v Go omogoča izbiro in izvedbo enega izraza izmed številnih izrazov z uporabo načela čakanja, kjer se stavek ne bo izvedel, dokler komunikacija ni končana. Zgoraj omenjene smernice vključujejo izberite izjavo osnovna sintaksa in primeri.