No hay nada complejo en las llamadas selectas en Go.
La sintaxis es similar a una instrucción Switch como:
seleccionar
Operación de canal de casos:
//
Case ChannelOperation2:
//
CASE CANAPERACIÓN3:
//
por defecto:
// Caso predeterminado
Golang Select
Considere el siguiente ejemplo de código que ilustra cómo usar la llamada de selección de Go.
paquete principal
importar "fmt"
func Main ()
Channel1: = make (cadena chan)
Channel2: = make (cadena chan)
Go func ()
canal 1 <- "channel 1"
()
Go func ()
canal2 <- "channel 2"
()
seleccionar
caso msg11: = <-channel1:
fmt.Println ("Mensaje recibido de:", msg11)
caso msg2: = <-channel2:
fmt.Println ("Mensaje recibido de:", msg2)
Si ejecutamos el código anterior, observa que obtenemos una salida diferente en cada ejecución. La declaración de selección elige cualquier salida si todos los casos están listos.
Podemos seleccionar un caso predeterminado utilizando la palabra clave predeterminada para evitar que la llamada Seleccione bloquee la Goroutine principal.
Un ejemplo es como se muestra:
paquete principal
importar "fmt"
func Main ()
Channel1: = make (cadena chan)
Channel2: = make (cadena chan)
Go func ()
canal 1 <- "channel 1"
()
Go func ()
canal2 <- "channel 2"
()
seleccionar
caso msg11: = <-channel1:
fmt.Println ("Mensaje recibido de:", msg11)
caso msg2: = <-channel2:
fmt.Println ("Mensaje recibido de:", msg2)
por defecto:
fmt.Println ("Las goroutinas no están listas!")
El programa anterior ejecutará el caso predeterminado ya que las Goroutinas están listas y no han devuelto la salida.
Conclusión
Podemos usar la llamada GO Select para obtener datos selectivamente de varios canales. La llamada Select seleccionará aleatoriamente los datos si todos los proveedores están listos. Si ninguno está listo, ejecutamos el caso predeterminado. Esperamos que hayas encontrado este artículo. Consulte otros artículos de Sugerencia de Linux para obtener más consejos e información.