go switch 的用法
简介
switch 默认情况下 case 最后自带 break 语句,
匹配成功后就不会执行其他 case,
如果我们需要执行后面的 case,可以使用 fallthrough
用法一
用于等值判断
switch var1 {
case val1,val11:
...
case val2,val22:
...
default:
...
}
变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值
类型不被局限于常量或整数,但必须是相同的类型;或者最终结果为相同类型的表达式。
您可以同时测试多个可能符合条件的值,使用逗号分割它们,例如:case val1, val2, val3
用法二
多重 if 判断语句
switch true {
case 逻辑判断表达式1:
...
case 逻辑判断表达式2:
...
default:
...
}
用法三
switch 语句还可以被用于 type-switch 来判断
某个 interface 变量中实际存储的变量类型。
var x interface{}
switch i := x.(type) {
case nil:
fmt.Printf(" x 的类型 :%T", i)
case int:
fmt.Printf("x 是 int 型")
case float64:
fmt.Printf("x 是 float64 型")
case func(int) float64:
fmt.Printf("x 是 func(int) 型")
case bool, string:
fmt.Printf("x 是 bool 或 string 型")
default:
fmt.Printf("未知型")
}