关于golang当中对select的理解

互联网 20-8-26

下面由Golang教程栏目给大家介绍关于golang当中对select的理解,希望对需要的朋友有所帮助!

Select 语句和 Swithc 语句的句式十分相似,但是 Select 中的 Case 必须是一个通信操作(一个 Channel 操作)。其执行逻辑是:哪一个 Case 后面的 Channel 操作可以被成功执行,则执行该 Case 下的代码块。如果同时多个 Case 可被成功执行,则随机选择其中一个。如果所有 Case 均不可被成功执行,则执行 default 下的代码块。如果没有 default 则会阻塞并返回死锁错误。

比如,当一个 Channel c1 被写入一条数据

c1 := make(chan string, 1)c1 <- "Hello World!"

如果我们有以下 Select 判断语句

select {     case <-c1:         fmt.Println("Case 1 is selected")     case c1<-"Hello World!":         fmt.Println("Case 2 is selected")     default :         fmt.Println("Default is selected")}

你会得到如下结果

Case 1 is selected

因为 c1 被写入了一条数据,所以我们可以成功 “从 c1 读出一条数据”。也就是第一个 case 可以被成功执行。所以,第一个 case 下的代码块最终被执行。

以上就是关于golang当中对select的理解的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: golang
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:关于用Go语言编程的利与弊

相关资讯