我在使用Printf 的%T进行输出的时候,发现变量v的类型是string,但是我定义一个string类型的变量A,然后使用 A = v的时候,会报错:cannot convert v (type interface {}) to type string: need type assertion
这个怎么处理。怎么把interface的类型转成 string呢?
谢谢各位大神。
更多评论
学习了,正好今天遇到类似的问题。
interface类型 . (需要转换的类型),
注意中间的点号,在进行类型转换前,最好先进行类型的判别:
func checkType(v1, v2 interface{}) error {
if reflect.TypeOf(v1) != reflect.TypeOf(v2) {
return errors.New("Types not ok")
}
return nil
}
这样会安全一些。
#3