简介Go语言中的select语句的用法
在Go编程语言中的select语句的语法如下:
select {
case communication clause :
statement(s);
case communication clause :
statement(s);
/* you can have any number of case statements */
default : /* Optional */
statement(s);
}
以下规则适用于select语句:
可以有任意数量的范围内选择一个case语句。每一种情况下后跟的值进行比较,以及一个冒号。
对于case的类型必须是一个通信通道操作。
当通道运行下面发生的语句这种情况将执行。在case语句中break不是必需的。
select语句可以有一个可选默认case,它必须出现在select的结束前。缺省情况下,可用于执行任务时没有的情况下是真实的。在默认情况下break不是必需的。
例如:
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")
}
}
让我们编译和运行上面的程序,这将产生以下结果:
no communication
相关推荐
-
Golang中switch语句和select语句的用法教程
本文主要给大家介绍了关于Golang中switch和select用法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 一.switch语句 switch语句提供了一个多分支条件执行的方法.每一个case可以携带一个表达式或一个类型说明符.前者又可被简称为case表达式.因此,Go语言的switch语句又分为表达式switch语句和类型switch语句. 1.表达式switch语句 var name string ... switch name { case "Golang"
-
Go语言中的switch用法实例分析
本文实例讲述了Go语言中的switch用法.分享给大家供大家参考.具体分析如下: 这里你可能已经猜到 switch 可能的形式了. case 体会自动终止,除非用 fallthrough 语句作为结尾. 复制代码 代码如下: package main import ( "fmt" "runtime" ) func main() { fmt.Print("Go runs on ") switch os := runtime.GOOS; os
-
Go语言中Select语句用法实例
本文实例讲述了Go语言中Select语句用法.分享给大家供大家参考.具体分析如下: select 语句使得一个 goroutine 在多个通讯操作上等待. select 会阻塞,直到条件分支中的某个可以继续执行,这时就会执行那个条件分支.当多个都准备好的时候,会随机选择一个. 复制代码 代码如下: package main import "fmt" func fibonacci(c, quit chan int) { x, y := 1, 1 for {
-
深入剖析Go语言编程中switch语句的使用
switch语句可以让一个变量对反对值的列表平等进行测试.每个值被称为一个的情况(case),变量被接通检查每个开关盒(switch case). 在Go编程,switch有两种类型. 表达式Switch - 在表达式switch,case包含相比较,switch表达式的值. 类型Switch - 在这类型switch,此时含有进行比较特殊注明开关表达式的类型. 表达式Switch 在Go编程语言中表达switch语句的语法如下: 复制代码 代码如下: switch(boolean-expres
-
简介Go语言中的select语句的用法
在Go编程语言中的select语句的语法如下: 复制代码 代码如下: select { case communication clause : statement(s); case communication clause : statement(s); /* you can have any number of case statements */ default : /* Optional */ stat
-
C语言中的switch语句基本用法
switch语句: 实际生活中,需要做出很多选择,大家都知道做选择可以使用if语句,但是如果选择太多,if语句使用起来就会很繁琐,这个时候就需要一个能将代码简化的语句,也就是我们今天的主角switch语句. switch语句是一个多分支选择语句,并且可以支持嵌套. switch语句的基本格式 switch(表达式) { case 常量1:语句1 case 常量2:语句2 default:语句n break; } switch语句通过将表达式的值与常量值进行比对,如果相等则执行后面的语句,如果不相
-
golang语言中for循环语句用法实例
本文实例讲述了golang语言中for循环语句用法.分享给大家供大家参考.具体分析如下: for循环是用来遍历数组或数字的.用for循环遍历字符串时,也有 byte 和 rune 两种方式.第一种为byte,第二种rune. 复制代码 代码如下: package main import ( "fmt" ) func main() { s := "abc汉字" for i := 0; i < len(s); i++ { fmt.Printf("%c,&
-
Python语言中的if语句详情
目录 1.简单介绍 2.if-else语句 3.用if语句来处理列表 1.简单介绍 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试.Python 根据条件测试的值为True还是False来决定是否执行if语句中的代码.如果条件测试的值为True,Python就执行紧跟在if语句后面的代码:如果为False,Python就忽略这些代码. 要判断是否相等,我们可以使用==来进行判断: car = 'Audi' car.lower() == 'audi' 输出的结
-
go语言中的return语句
目录 1.基本语法和说明 2.函数的递归调用 2.1基本介绍 2.2递归调用入门 3.总结 1.基本语法和说明 在 Go 语言 中,跳转控制语句除了有 goto .break 和 continue 之外,还可以使用 return .如果 return 语句使用在普通的 函数 中,则表示跳出该函数,不再执行函数中 return 后面的代码,可以理解成终止函数.如果 return 语句使用在 main 函数中,表示终止 main 函数,也就是终止程序的运行. go函数支持返回多个值,这一点是其他编程
-
详解C++语言中std::array的神奇用法
概述 std::array是在C++11标准中增加的STL容器,它的设计目的是提供与原生数组类似的功能与性能.也正因此,使得std::array有很多与其他容器不同的特殊之处,比如:std::array的元素是直接存放在实例内部,而不是在堆上分配空间:std::array的大小必须在编译期确定:std::array的构造函数.析构函数和赋值操作符都是编译器隐式声明的--这让很多用惯了std::vector这类容器的程序员不习惯,觉得std::array不好用.但实际上,std::array的威力
-
详解C语言中typedef和#define的用法与区别
目录 一.typedef的用法 二.#define的用法 三.typedef与#define的区别 四.typedef的用途 用途一 用途二 用途三 用途四 五.typedef的陷阱 陷阱一 陷阱二 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,比如: typedef int INT; typedef (int*) pINT; typedef unsigned int uint32_t type
-
C语言中的const和free用法详解
注意:C语言中的const和C++中的const是有区别的,而且在使用VS编译测试的时候.如果是C的话,请一定要建立一个后缀为C的文件,不要是CPP的文件.因为,两个编译器会有差别的. 一.C语言中的const比较常见的用法,const做常量 #include<stdio.h> #include<malloc.h> #include<string.h> /* C中的const用法(使用VS测试的时候,要注意建立一个C后缀的文件,因为C的编译器和C++的编译器还是有区别的
-
C语言中#pragma pack(1)的用法与注意点
目录 一:何时使用 二. 为什么使用#pragma pack(1) 三.注意点 四.#pragma pack()的一些用法 五.题目 附:C语言慎用#pragma pack(1)命令 总结 一:何时使用 #pragma pack(1)的用法大多是用在结构体中 二. 为什么使用#pragma pack(1) 结构体的字节对齐方式在不同的编译器中不同,会存在数据冗余,以下举个例子 struct example { char header_start; double data_type; }; 现有的
随机推荐
- C#开发微信 二维码鼠标滑动 图像显示隐藏效果(推荐)
- mysql 判断记录是否存在方法比较
- 用 JSON 处理缓存
- jdk中密钥和证书管理工具keytool常用命令详解
- python数据结构之二叉树的遍历实例
- js eval木马代码,以后再分析吧
- ASP.NET MVC5验证系列之服务端验证
- php分页函数
- C#实现多线程写入同一个文件的方法
- mysql “ Every derived table must have its own alias”出现错误解决办法
- JQuery实现定时刷新功能代码
- 查看或修改Windows系列系统的序列号的vbs
- python下MySQLdb用法实例分析
- Sql server2005 优化查询速度50个方法小结
- jquery插件EasyUI中form表单提交实例分享
- 在DOS下使用注册表扫描程序
- Spring Boot使用和配置Druid
- eclipse/intellij idea 远程调试hadoop 2.6.0
- Android自定义View叶子旋转完整版(六)
- Android 按指定大小读取图片的实例