douna5529 2014-08-09 00:23
浏览 119
已采纳

获得无效的操作:尝试为地图建立索引时,mymap [“标题”](类型接口{}不支持索引)

I have data that's in a map, and I want to index into the map by key to get a value.

mdi, err := page.Metadata()
fmt.Println(mdi["title"])

However I keep getting the error message invalid operation: mdi["title"] (type interface {} does not support indexing). I am confused, because the data is a map and I should be able to index into it to get the value. In case the type wasn't clear, I also tried to cast the value to a string:

title, ok := mdi["title"].(string)
checkOk(ok)
fmt.Println(title)

However, I got the same error message. What am I doing wrong?

  • 写回答

2条回答 默认 最新

  • duanliu8998 2014-08-09 00:23
    关注

    The data type here was the key. mdi was not actually a map, but an interface{}, which could be anything - a map, a string, an int. You need to assert it to a map with expected key/value types first, or do the awkward case switch outlined in JSON and Go.

    mdi, err := page.Metadata()
    md, ok := mdi.(map[string]interface{})
    fmt.Println(md["title"])
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集