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

我得到一个地图界面,例如:


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 


拉莫斯之舞
浏览 127回答 3
3回答

开满天机

OP 对这个问题的评论指出 type of getUsersAppInfois []map[string]interface{}。循环遍历地图切片。对于每个映射,循环遍历键和值并打印。// loop over elements of slicefor _, 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)    }}

炎炎设计

我不建议在生产设置中这样做。但是当我想在我的开发盒上打印出没有太多代码的地图时,我会打印 JSON 序列化版本。这在生产中将是犯罪行为。package mainimport (    "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}

倚天杖

恐怕唯一的选择是遍历地图:getUsersAppInfo := map[string]interface{}{"foo": 3, "bar": "baz"}for key, value := range getUsersAppInfo {    fmt.Printf("%s value is %v\n", key, value)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go