我对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")
- 1 回答
- 0 关注
- 62 浏览
添加回答
举报
0/150
提交
取消