Go - La déclaration Select

La syntaxe d'un select l'instruction dans le langage de programmation Go est la suivante -

select {
   case communication clause  :
      statement(s);      
   case communication clause  :
      statement(s); 
   /* you can have any number of case statements */
   default : /* Optional */
      statement(s);
}

Les règles suivantes s'appliquent à un select déclaration -

  • Vous pouvez avoir n'importe quel nombre d'instructions de cas dans une sélection. Chaque cas est suivi de la valeur à comparer et d'un signe deux-points.

  • le type pour un cas doit être une opération de canal de communication.

  • Lorsque l'opération de canal s'est produite, les instructions suivant ce cas s'exécuteront. Nonbreak est nécessaire dans la déclaration de cas.

  • UNE select l'instruction peut avoir une option defaultcase, qui doit apparaître à la fin de la sélection. Le cas par défaut peut être utilisé pour exécuter une tâche lorsque aucun des cas n'est vrai. Nonbreak est nécessaire dans le cas par défaut.

Exemple

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")
   }    
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

no communication