go语言选择语句 switch case
来源:互联网 发布:java中的initcause方法 编辑:程序博客网 时间:2024/05/23 16:33
根据传入条件的不同,选择语句会执行不同的语句。下面的例子根据传入的整型变量i的不同而打印不同的内容:
switch i { case 0: fmt.Printf("0") case 1: fmt.Printf("1") case 2: fallthrough case 3: fmt.Printf("3") case 4, 5, 6: fmt.Printf("4, 5, 6") default: fmt.Printf("Default") }
运行上面的案例,将会得到如下结果:
i = 0时,输出0;
i = 1时,输出1;
i = 2时,输出3;
i = 3时,输出3;
i = 4时,输出4, 5, 6;
i = 5时,输出4, 5, 6;
i = 6时,输出4, 5, 6;
i = 其他任意值时,输出Default。
比较有意思的是,switch后面的表达式甚至不是必需的,比如下面的例子:
switch { case 0 <= Num && Num <= 3: fmt.Printf("0-3") case 4 <= Num && Num <= 6: fmt.Printf("4-6") case 7 <= Num && Num <= 9: fmt.Printf("7-9") //http://www.cnblogs.com/osfipin/}
在使用switch结构时,我们需要注意以下几点:
左花括号{必须与switch处于同一行;
条件表达式不限制为常量或者整数;
单个case中,可以出现多个结果选项;
与C语言等规则相反,Go语言不需要用break来明确退出一个case;
只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case;
可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个if...else...的逻辑作用等同。
再比如下面的例子
func (this *multiSort) Less(i, j int) bool {p, q := &this.changes[i], &this.changes[j]// Try all but the last comparison.var k intfor k = 0; k < len(this.less)-1; k++ {less := this.less[k]switch {case less(p, q):// p < q, so we have a decision.return truecase less(q, p):// p > q, so we have a decision.return false}// p == q; try the next comparison.}// All comparisons to here said "equal", so just return whatever// the final comparison reports.return this.less[k](p, q)}
其中,less是一个函数
0 0
- go语言选择语句 switch case
- go语言:switch语句
- Go语言switch语句
- 【C语言】switch..case语句
- Go语言选择语句
- c语言中的switch case语句
- C语言基础 之 switch-case语句
- python语言没有switch-case语句
- C语言选择语句的使用---if()-else和switch--case
- switch-case选择结构
- 基于proteus的51单片机仿真实例二十九、C语言的switch-case多分支选择语句
- switch-case语句用法
- 看switch case 语句
- switch case 语句
- switch-case语句
- switch-case语句用法
- switch-case语句用法
- switch-case语句用法
- 接口关系下的多态
- 深入理解在Android中线程池的使用
- TensorFlow MNIST 测试
- 程序设计方法学———— 三天打鱼两天晒网(日期判定)
- TI-RTOS 内核概述,开发蓝牙功能必须要熟悉的实时操作系统
- go语言选择语句 switch case
- Stereo Matching文献笔记之(八):《On Building an Accurate Stereo Matching System on Graphics Hardware》读后感~
- a标签的伪类选择器
- 从前端获取ID时,出现前缀怎么办
- 成员内部类
- Leetcode 124. Binary Tree Maximum Path Sum
- L1-010. 比较大小 Java
- SpringMVC--面试知识点
- laravel 的 intervention-image 图像处理笔记