interface{} 类型转换的问题
来源:2-2 内建变量类型

晓之海绵宝宝
2018-07-08
我希望定义一个 interface{} 类型的切片,然后希望拼接所有的元素
var result string var arrs []interface{} arrs = append(arrs, 1) arrs = append(arrs, "ha") for _, v := range arrs { result += v.(string) } fmt.Println(arrs)
然后就会报错 :
panic: interface conversion: interface {} is int, not string
写回答
2回答
-
ccmouse
2018-07-09
类型转换可以多收一个参数,result,ok:=v.(string)
或者可以使用type assertion,我会讲到。
我看了下其实你想不管啥类型都拼成string,那使用fmt.Sprintf(“%v”,v)就可以了032018-07-18 -
废名0
2018-07-08
你添加int 1 又用了类型断言 string 肯定会报错啊。。
032018-07-09
相似问题