Hvordan bruger man Select Statement i Golang?

Hvordan Bruger Man Select Statement I Golang



EN vælg erklæring i Golang gør det muligt for udviklere at synkronisere og kommunikere mellem Go-rutinerne, kanalerne og datastrømmene. Det tillader et Go-program at vente på flere kanaloperationer på én gang og udføre den første operation, der er klar.

I denne artikel vil vi undersøge, hvordan du bruger vælg erklæring i Golang og giv eksempler til at hjælpe dig med at opnå parallelitet, samtidighed og synkronisering i Go-programmer.

Hvordan bruger man Select Statement i Golang?

I lighed med switch-erklæringen er vælg erklæring tillader os at vælge og udføre ét udtryk blandt mange udtryk, men den primære forskel mellem Vælg og switch er, at vælg erklæring fungerer efter venteprincippet, hvilket betyder, at vælg erklæring vil ikke udføres, før kommunikationen er afsluttet.







Her refererer kommunikation til at sende og modtage data på tværs af en given kanal. Når kommunikationen er afsluttet, udføres det næste tjek, hvilket giver os mulighed for at se, at Go-sprogets select-sætning er helt afhængig af kanalen.



Syntaks for Select Statement

Den simple syntaks, der bruges til vælg erklæring Brug af Go-sproget er vist nedenfor:



Vælg {
sag kanal_1 :
// kode til at udføre, når kanal_1 er klar
sag kanal_2 :
// kode til at udføre, når kanal_2 er klar
sag kanal_3 :
// kode til at udføre, når kanal_3 er klar
sag kanal_4 :
// kode til at udføre, når kanal_4 er klar
Standard :
// kode til at udføre, hvis ingen af ​​kanalerne er klar
}

Her:





  • Inden for en vælg erklæring , repræsenterer hvert tilfælde en kanaloperation, som kan være en modtageoperation eller en sendeoperation.
  • Det vælg erklæring venter til en af ​​sagerne er klar og kører så den og den tilhørende sagsopgørelse.
  • Den vælger tilfældigt kanalen, hvis der er flere kanaler klar til at køre.

Sådan opretter du en kanal i Golang

For at oprette en kanal i Go kan brugerne bruge make-funktionen efterfulgt af chan søgeord og angiv kanaltypen, som kan være int, streng eller andre.

ch := lave ( chan type )

Implementer Select Statement i Golang

Her vil vi give flere eksempler for at hjælpe dig med at lære det grundlæggende i at bruge vælg erklæring i Golang.



Eksempel 1

Følgende eksempel på vælg erklæring viser, hvordan det fungerer, når begge kanaler er klar til at køre.

hovedpakke

importere 'fmt'

func hoved ( ) {

på en := lave ( chan int )

str := lave ( chan streng )

gå chan_num ( på en )

gå chan_str ( str )

Vælg {

sag Ch1 := <- på en :

fmt. Println ( 'Kanaldata:' , Ch1 )

sag Ch2 := <- str :

fmt. Println ( 'Kanaldata:' , Ch2 )

}

}

func chan_num ( num chan int ) {

på en <- 67

}

func chan_str ( str chan streng ) {

str <- 'Linux'

}

I ovenstående eksempel oprettede vi to kanaler, på en, og str og vi brugte Go-funktionerne chan_num() at sende data til nummer-kanalen og chan_str() at sende data til str-kanalen. Fordi programmet indeholder to forskellige kanaler, brugte vi vælg erklæring at henrette en af ​​dem.

Sag Ch1 læser værdien fra nummer kanal og viser det. Tilsvarende tilfælde Ch2 returnerer værdien fra str kanal. Ovenstående program returnerer output fra den kanal, der er klar til at blive brugt. Produktion

Eksempel 2

Hvis du vil tilføje en forsinkelse til en kanal og returnere output fra en anden kanal, kan du bruge time.sleep() funktion på en bestemt kanal. Dette giver dig mulighed for at udskrive output fra den anden kanal til konsollen. Her er et eksempel på sådan en sag.

hovedpakke

importere (

'fmt'

'tid'

)

func hoved ( ) {

på en := lave ( chan int )

str := lave ( chan streng )

gå chan_num ( på en )

gå chan_str ( str )

Vælg {

sag Ch1 := <- på en :

fmt. Println ( 'Kanaldata:' , Ch1 )

sag Ch2 := <- str :

fmt. Println ( 'Kanaldata:' , Ch2 )

}

}

func chan_num ( num chan int ) {

på en <- 67

}

func chan_str ( str chan streng ) {

tid . Søvn ( 5 * tid . Anden )

str <- 'Linux'

}

I den ovenfor givne kode brugte vi tid.Søvn() funktion inde i chan_str() fungere. Kun num-kanalen er klar til udførelse i de første 5 sekunder. Som følge heraf vælg erklæring kører sag Ch1 .

Produktion

Bemærk: Du kan tilføje en forsinkelse til begge kanaler for at forsinke udførelsen af ​​kanaler.

Konklusion

Det vælg erklæring in Go giver mulighed for at vælge og udføre ét udtryk ud af mange udtryk ved hjælp af wait-princippet, hvor sætningen ikke udføres, før kommunikationen er afsluttet. Ovennævnte retningslinjer omfatter bl vælg erklæring grundlæggende syntaks og eksempler.