前端之家收集整理的这篇文章主要介绍了
如何在golang中记录类型断言错误?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些数据,我想在[]字符串中映射.我可以用两种方式做到:
一个)
// someData
s := someData.([]string)
在这种情况下,执行将在控制台上列出错误后停止.
b)
// someData
s,ok := someData.([]string)
在这种情况下,不会发生错误,但s将具有零值
我想在不停止执行的情况下在这种类型的断言失败案例中记录错误.但是,当我使用类型(b)时,我看不到错误详细信息.
我能想到的唯一解决方案是使用reflect.TypeOf并打印两种类型.
使用解决方案(b)时,还有其他方法可以解决错误吗?
您可以自己构建日志消息.不需要显式
调用来反映,因为有一个printf格式字符串%T
生成该类型.
s,ok := someData.([]string)
if !ok {
log.Printf("got data of type %T but wanted []string",someData)
... handle the failure somehow
}
在不了解上下文的情况下,我很难生成有用的信息性日志语句,但您可以根据自己的使用情况调整该想法.