这篇文章主要讲解了“Go中的条件语句Switch的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go中的条件语句Switch的用法”吧!
Go的switch的基本功能和C、Java类似:
switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。
匹配项后面也不需要再加 break。
特点:
switch 默认情况下 case 最后自带 break 语句,匹配成功后就不会执行其他 case
重点介绍Go当中的Switch的两个特别点:**
表达式判断为true还需要执行后面的 case,可以使用 fallthrough
type-switch 来判断某个 interface 变量中实际存储的变量类型
特点:
强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。
示例:
package main import "fmt" func main() { switch { case true: fmt.Println("1、case条件语句为false!") fallthrough case 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的用法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。