Go中的条件语句Switch示例详解
Switch简介
Go的switch的基本功能和C、Java类似:
- switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。
- 匹配项后面也不需要再加 break。
switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case
重点介绍Go当中的Switch的两个特别点:**
【Go中的条件语句Switch示例详解】表达式判断为true还需要执行后面的 case,可以使用 fallthroughfallthrough 特点:
type-switch 来判断某个 interface 变量中实际存储的变量类型
强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。
示例:
package main?import "fmt"?func main() {switch {case true:fmt.Println("1、case条件语句为false!")fallthroughcase false:fmt.Println("2、case条件语句为true!")default:fmt.Println("默认的case")}}
代码分析:
- 正常来说当执行完第一条语句以后不会执行第二个
case
,因为第二个case
为false
而且已经执行完了第一个true
的case
fallthrough
关键字存在会强制执行第二个case
- 判断某个 interface 变量中实际存储的变量类型
- 可以枚举类型,值类型和引用类型都可以
switch x.(type){case type:statement(s); case type:statement(s); /* 你可以定义任意个数的case */default: /* 可选 */statement(s); }
示例:
package main?import ("fmt""go/types")?func main() {var inter interface{} = true?//使用变量去代替接口当中的值并且判断类型switch i := inter.(type) {case types.Nil:fmt.Println("x的类型是:", i)case int:fmt.Println("x是int类型")case float64:fmt.Println("x是float64类型")case func(int2 int):fmt.Println("x是func(int)类型")case bool, string:fmt.Println("x是bool或string类型")default:fmt.Println("未知类型")}
可以直接判断接口当中的数据的数据类型
到此这篇关于Go中的条件语句Switch详解的文章就介绍到这了,更多相关Go条件语句Switch内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 热闹中的孤独
- JS中的各种宽高度定义及其应用
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- Android中的AES加密-下
- 放下心中的偶像包袱吧
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- (七)谈条件