interface 怎么类型转换

weixin_38053335 2019-09-20 10:50:09
我在使用Printf 的%T进行输出的时候,发现变量v的类型是string,但是我定义一个string类型的变量A,然后使用 A = v的时候,会报错:cannot convert v (type interface {}) to type string: need type assertion
这个怎么处理。怎么把interface的类型转成 string呢?
谢谢各位大神。
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38100051 2019-09-20
  • 打赏
  • 举报
回复
学习了,正好今天遇到类似的问题。 interface类型 . (需要转换的类型), 注意中间的点号,在进行类型转换前,最好先进行类型的判别: func checkType(v1, v2 interface{}) error { if reflect.TypeOf(v1) != reflect.TypeOf(v2) { return errors.New("Types not ok") } return nil } 这样会安全一些。
weixin_38058377 2019-09-20
  • 打赏
  • 举报
回复
A.(string) 类型断言
weixin_38087753 2019-09-20
  • 打赏
  • 举报
回复
只能 是 interface 类型来兼容自定义结构等强类型, 不能反过来,强类型来 兼容interface 类型! GO可是非常强类型的语言。

430

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧