为了账号安全,请及时绑定邮箱和手机立即绑定

接口转换:接口{}为零,不是布尔

接口转换:接口{}为零,不是布尔

Go
守着一只汪 2022-09-26 19:48:52
我对Go比较陌生。我正在对现有项目进行更改。我需要检索可能存在于HTTP请求正文中的元素值并弹出它。var returnValues = body.Params["returnValues"].(bool)delete(body.Params, "returnValues")我在第一行遇到错误。接口转换:接口 {} 为零,而不是布尔样品体:{"Params": {    "returnValues": true    }}
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

始终,如果您访问接口映射或默认 nil 类型并使用该映射执行操作,请确保该键的值在使用之前存在于映射中。如果映射中不存在该值,它将返回 nil 和具有 nil 引用的 panic。


r, ok := body.Params["returnValues"]

    if !ok {

        // returnValues not present in Params map. Handle the scenario

        // and don't continue below 

    }

    var returnValues = r.(bool)

    delete(body.Params, "returnValues")

此外,如果您不确定要访问的变量类型,请使用类型断言并查看您的类型是否正常。然后,如果它是空的,那么它也为类型断言返回 false。


returnValues, ok := body.Params["returnValues"].(bool)

    if !ok {

        // returnValues may not present in Params map. or it is not an 

        // boolean type, handle scenario here

    }

    delete(body.Params, "returnValues")


查看完整回答
反对 回复 2022-09-26
  • 1 回答
  • 0 关注
  • 62 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信