简介Go语言中的select语句的用法
在Go编程语言中的select语句的语法如下:
select{ casecommunicationclause : statement(s); casecommunicationclause : statement(s); /*youcanhaveanynumberofcasestatements*/ default:/*Optional*/ statement(s); }
以下规则适用于select语句:
可以有任意数量的范围内选择一个case语句。每一种情况下后跟的值进行比较,以及一个冒号。
对于case的类型必须是一个通信通道操作。
当通道运行下面发生的语句这种情况将执行。在case语句中break不是必需的。
select语句可以有一个可选默认case,它必须出现在select的结束前。缺省情况下,可用于执行任务时没有的情况下是真实的。在默认情况下break不是必需的。
例如:
packagemain
import"fmt"
funcmain(){ varc1,c2,c3chanint vari1,i2int select{ casei1=<-c1: fmt.Printf("received",i1,"fromc1\n") casec2<-i2: fmt.Printf("sent",i2,"toc2\n") casei3,ok:=(<-c3): //sameas:i3,ok:=<-c3 ifok{ fmt.Printf("received",i3,"fromc3\n") }else{ fmt.Printf("c3isclosed\n") } default: fmt.Printf("nocommunication\n") } }