Golang Selecione Chamada

Golang Selecione Chamada
A chamada de seleção de Golang refere -se a uma declaração de switch usada na comunicação do canal. Ele permite que você espere em várias operações de canal, como enviar ou receber.

Não há nada complexo nas chamadas selecionadas.

A sintaxe é semelhante a uma declaração de troca como:

Selecione
Case ChannelOperation:
//
Case ChannelOperation2:
//
Case Channeoperation3:
//
padrão:
// Caso padrão

Golang Select

Considere o seguinte exemplo de código que ilustra como usar a chamada para selecionar.

Pacote principal
importar "fmt"
func main ()
canal1: = make (string chan)
canal2: = make (string chan)
vá func ()
Channel1 <- "channel 1"
()
vá func ()
Channel2 <- "channel 2"
()
Selecione
case msg11: = <-channel1:
fmt.Println ("mensagem recebida de:", msg11)
case msg2: = <-channel2:
fmt.Println ("mensagem recebida de:", msg2)

Se executarmos o código anterior, você percebermos que obtemos uma saída diferente em cada execução. A instrução SELECT escolhe qualquer saída se todos os casos estiverem prontos.

Podemos selecionar um caso padrão usando a palavra -chave padrão para impedir que a chamada selecionada bloqueie a goroutina principal.

Um exemplo é como mostrado:

Pacote principal
importar "fmt"
func main ()
canal1: = make (string chan)
canal2: = make (string chan)
vá func ()
Channel1 <- "channel 1"
()
vá func ()
Channel2 <- "channel 2"
()
Selecione
case msg11: = <-channel1:
fmt.Println ("mensagem recebida de:", msg11)
case msg2: = <-channel2:
fmt.Println ("mensagem recebida de:", msg2)
padrão:
fmt.Println ("Goroutines não estão prontos!")

O programa anterior executará o caso padrão, pois as goroutinas estão prontas e não retornaram sem saída.

Conclusão

Podemos usar a chamada go Select para buscar seletivamente dados de vários canais. A chamada selecionada selecionará aleatoriamente os dados se todos os provedores estiverem prontos. Se nenhum estiver pronto, executamos o caso padrão. Esperamos que você tenha encontrado este artigo. Confira outros artigos de dica do Linux para obter mais dicas e informações.