这篇文章主要讲解了“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。