Go - L'istruzione Select
La sintassi per a select L'istruzione nel linguaggio di programmazione Go è la seguente:
select {
case communication clause :
statement(s);
case communication clause :
statement(s);
/* you can have any number of case statements */
default : /* Optional */
statement(s);
}
Le seguenti regole si applicano a un file select dichiarazione -
Puoi avere un numero qualsiasi di istruzioni case all'interno di un select. Ogni caso è seguito dal valore da confrontare e da due punti.
Il type per un caso deve essere un'operazione di canale di comunicazione.
Quando si è verificata l'operazione sul canale, verranno eseguite le istruzioni che seguono quel caso. Nobreak è necessario nell'istruzione case.
UN select l'istruzione può avere un optional defaultcase, che deve comparire alla fine della selezione. Il caso predefinito può essere utilizzato per eseguire un'attività quando nessuno dei casi è vero. Nobreak è necessario nel caso predefinito.
Esempio
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")
}
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
no communication