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

Golang:一个地图接口,如何打印键和值

Golang:一个地图接口,如何打印键和值

Go
拉莫斯之舞 2022-06-06 15:58:49
我得到一个地图界面,例如:getUsersAppInfo := usersAppInfo.GetUsersAppInfo(getUserId)然后我打印:fmt.Println(getUsersAppInfo)得到这个,比如:[map[appId:2 fcmServerKey:keyTestTest name:com.app]]问:如何打印值,比如appId value is 2 name value is com.app fcmServerKey:keyTestTest value is keyTestTest 
查看完整描述

3 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

OP 对这个问题的评论指出 type of getUsersAppInfois []map[string]interface{}。


循环遍历地图切片。对于每个映射,循环遍历键和值并打印。


// loop over elements of slice

for _, m := range getUsersAppInfo {


    // m is a map[string]interface.

    // loop over keys and values in the map.

    for k, v := range m {

        fmt.Println(k, "value is", v)

    }

}


查看完整回答
反对 回复 2022-06-06
?
炎炎设计

TA贡献1808条经验 获得超4个赞

我不建议在生产设置中这样做。但是当我想在我的开发盒上打印出没有太多代码的地图时,我会打印 JSON 序列化版本。这在生产中将是犯罪行为。


package main


import (

    "encoding/json"

    "fmt"

)


func main() {

    a := map[string]interface{}{"appId": 2, "fcmServerKey": "keyTestTest", "name": "com.app", "version": []int{1, 2, 3}, "xyz": 3}

    bs, _ := json.Marshal(a)

    fmt.Println(string(bs))

}

输出:


{"appId":2,"fcmServerKey":"keyTestTest","name":"com.app","version":[1,2,3],"xyz":3}


查看完整回答
反对 回复 2022-06-06
?
倚天杖

TA贡献1828条经验 获得超3个赞

恐怕唯一的选择是遍历地图:


getUsersAppInfo := map[string]interface{}{"foo": 3, "bar": "baz"}

for key, value := range getUsersAppInfo {

    fmt.Printf("%s value is %v\n", key, value)

}


查看完整回答
反对 回复 2022-06-06
  • 3 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

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