go 中的类型选择(type switch),先看示例:
var i interface{}
// 这里的 v 是类型的值
switch v := i.(type) {
case T:
// 值 v 的类型为 T
case S:
// 值 v 的类型为 S
default:
// 没有匹配,v 的类型与 i 的底层值类型相同,只是没有确定具体是哪个类型
}
解释:
go中的类型选择(type switch)是一种按书序从几个类型断言(type assert)中选择分支的结构
switch 得到的值是类型的值,但是 case 选择判断是值的类型