switch v := v.(type) 求解

DonWang · · 2325 次点击
如果你使用goland,把鼠标放到switch内的变量上,会提示 valType内的 v是 *int ,valType2内的 v是interface{}。 方法传入的参数是有类型的。valType2内的变量 v 是带类型的interface{}。所以是false。
#12
更多评论
#### 输出结果 ```shell *int true *int or *string false *int or *string false ```
#1
case 后面跟多个类型时,只要其中一个类型匹配, 会直接将v赋值给k,类似执行k:=v ```go switch k := v.(type) { case *int, *string: fmt.Println("*int or *string", k == nil) case int: fmt.Println("int", k) } ```
#2