Latest web development tutorials

Ir lenguaje de instrucción de selección

Ir sentencias condicionales del lenguaje Ir sentencias condicionales del lenguaje

seleccione Go es una estructura de control en un comunicado similar para el cambio a comunicarse. Cada caso debe ser una operación de comunicación, ya sea enviando o recibiendo.

seleccionar una ejecución aleatoria caso se puede ejecutar. Si no hay ningún caso para funcionar, será bloqueado hasta que el caso se puede ejecutar. Una cláusula de incumplimiento siempre debe estar en ejecución.

gramática

Ir programando sintaxis del lenguaje de instrucción de selección es el siguiente:

select {
    case communication clause  :
       statement(s);      
    case communication clause  :
       statement(s); 
    /* 你可以定义任意数量的 case */
    default : /* 可选 */
       statement(s);
}

A continuación se describe la sintaxis de la instrucción de selección:

  • Cada caso debe ser una comunicación
  • Se evaluarán todas canal de expresión
  • Todas las expresiones serán enviados a ser evaluado
  • Si una comunicación puede ser cualquiera, lleva a cabo, mientras que otros son ignorados.
  • Si más de un caso se puede ejecutar, Select seleccionará al azar una ejecución justa. Otros no ser ejecutado.
    De lo contrario:
    1. Si no hay cláusula de incumplimiento, se ejecuta la sentencia.
    2. Si no hay ninguna cláusula por defecto, seleccione el bloque hasta que una comunicación puede funcionar; ir al canal o no valor reevaluado.

Ejemplos

package main

import "fmt"

func main() {
   var c1, c2, c3 chan int
   var i1, i2 int
   select {
      case i1 = <-c1:
         fmt.Printf("received ", i1, " from c1\n")
      case c2 <- i2:
         fmt.Printf("sent ", i2, " to c2\n")
      case i3, ok := (<-c3):  // same as: i3, ok := <-c3
         if ok {
            fmt.Printf("received ", i3, " from c3\n")
         } else {
            fmt.Printf("c3 is closed\n")
         }
      default:
         fmt.Printf("no communication\n")
   }    
}

El código de seguridad se ejecuta como resultado de:

no communication

Ir sentencias condicionales del lenguaje Ir sentencias condicionales del lenguaje