之前断言总是拿不到结构体的value,原来少些一个方法
func TYPEOF(arg interface{}){
switch arg.(type) {
case struct1:
v,ok:=arg.(struct1)
if ok{
v.Age+=1
fmt.Printf("interface类型是:%T\n",v)
fmt.Printf("interface值是:%v\n",v)
}
case map[string]string:
v,ok:=arg.(map[string]string)
if ok{
v["age"]="18"
fmt.Printf("interface类型是:%T\n",v)
fmt.Printf("interface值是:%v\n",v)
}
}
}
注意:
1 common,ok:=arg.(type) 只能用来判断interface{}的类型,判断类型成功赋值给common前面的变量(固定用法)
2 switch arg.(type){} 语句也只能用在对interface{}断言(固定用法)