
select是Go中的一个控制结构,类似于用于通信的switch语句。每个case必须是一个通信 *** 作,要么是发送要么是接收。
select随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。一个默认的子句应该总是可运行的。
语法Go 编程语言中 select 语句的语法如下:
select { case communication clause : statement(s); /* 你可以定义任意数量的 case */default /* 可选 */}
以下描述了 select 语句的语法:
每个case都必须是一个通信 所有channel表达式都会被求值 所有被发送的表达式都会被求值 如果任意某个通信可以进行,它就执行;其他被忽略。 如果有多个case都可以运行,Select会随机公平地选出一个执行。其他不会执行。否则: 如果有default子句,则执行该语句。 如果没有default字句,select将阻塞,直到某个通信可以运行;Go不会重新对channel或值进行求值。 实例
package mainimport "fmt"func main() var c1, c2 c3 chan int i1 i2 i1 =<-c1 fmt.Printf("received "" from c1\n") c2 i2"sent "" to c2\n" i3 ok :=(<-c3): // same as: i3,ok := <-c3 if fmt" from c3\n" } else"c3 is closed\n"default"no communication\n" 以上代码执行结果为:nocommunication
原文地址:http://www.runoob.com/go/go-select-statement.html?from=timeline
个人微信公众号:
作者:jiankunking 出处:http://blog.csdn.net/jiankunking
总结以上是内存溢出为你收集整理的Go 语言 select 语句全部内容,希望文章能够帮你解决Go 语言 select 语句所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)