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
相似问题