登录
首页 >  Golang >  Go问答

如何从地图中获取值

来源:Golang技术栈

时间:2023-05-03 13:17:48 393浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《如何从地图中获取值》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

问题

从地图中获取数据

数据格式

res = map[Event_dtmReleaseDate:2009-09-15 00:00:00 +0000 +00:00 Trans_strGuestList: strID:TSTB]

笔记

如何从上述结果中得到以下值

  1. Event_dtmReleaseDate
  2. strID
  3. Trans_strGuestList

我尝试了什么:

  1. res.Map("Event_dtmReleaseDate");

错误:res.Map 未定义(类型 map[string]interface {} 没有字段或方法 Map)

  1. res.Event_dtmReleaseDate;

错误:v.id 未定义(类型 map[string]interface {} 没有字段或方法 id)

正确答案

你的变量是 amap[string]interface {}这意味着键是一个字符串,但值可以是任何东西。一般来说,访问它的方法是:

mvVar := myMap[key].(VariableType)

或者在字符串值的情况下:

id  := res["strID"].(string)

请注意,如果类型不正确或映射中不存在键,这将导致恐慌,但我建议您阅读有关 Go 映射和类型断言的更多信息。

在此处阅读地图:http: //golang.org/doc/effective_go.html#maps

关于类型断言和接口转换:http: //golang.org/doc/effective_go.html#interface_conversions

没有机会恐慌的安全方法是这样的:

var id string
var ok bool
if x, found := res["strID"]; found {
     if id, ok = x.(string); !ok {
        //do whatever you want to handle errors - this means this wasn't a string
     }
} else {
   //handle error - the map didn't contain this key
}

理论要掌握,实操不能落!以上关于《如何从地图中获取值》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>