加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在golang中记录类型断言错误?

发布时间:2020-12-16 19:26:02 所属栏目:大数据 来源:网络整理
导读:我有一些数据,我想在[]字符串中映射.我可以用两种方式做到: 一个) // someDatas := someData.([]string) 在这种情况下,执行将在控制台上列出错误后停止. b) // someDatas,ok := someData.([]string) 在这种情况下,不会发生错误,但s将具有零值 我想在不停止
我有一些数据,我想在[]字符串中映射.我可以用两种方式做到:

一个)

// 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
}

在不了解上下文的情况下,我很难生成有用的信息性日志语句,但您可以根据自己的使用情况调整该想法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读