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.