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

如何重置地图地图中的值

如何重置地图地图中的值

Go
扬帆大鱼 2022-10-17 19:17:58
这是我的代码{    saruman := map[string]int{     "power": 150,     "skills": 200,     "knowledge": 380,    }    gandalf := map[string]int{     "power": 180,     "skills": 210,     "knowledge": 240,    }    wizards := make(map[string]interface{})    wizards["saruman"] = saruman    wizards["gandalf"] = gandalf    fmt.Println(wizards)    //OK map[gandalf:map[knowledge:240 power:180 skills:210] saruman:map[knowledge:380 power:150 skills:200]]    //change gandalf property    wizards["gandalf"]["knowledge"] = 310    fmt.Println(wizards)}在最后一行,我们得到:NOK无效操作:wizards["gandalf"]["knowledge"](类型接口{}不支持索引)
查看完整描述

3 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您不能使用它["key"]来访问 golang 不知道的结构。因为它是interface{}甘道夫背后的价值,可以是任何东西。

    wizards["gandalf"] = map[string]int{
             "knowledge": 310,
    }

您必须指定要与之交互的数据类型。

游乐场:https ://goplay.tools/snippet/O62ara8JbUv


查看完整回答
反对 回复 2022-10-17
?
慕慕森

TA贡献1856条经验 获得超17个赞

这是更简单的方法:

一行代码


wizards["gandalf"].(map[string]int)["knowledge"] = 110

完整示例:


saruman := map[string]int{

    "power":     150,

    "skills":    200,

    "knowledge": 380,

}

gandalf := map[string]int{

    "power":     180,

    "skills":    210,

    "knowledge": 240,

}


wizards := make(map[string]interface{})

wizards["saruman"] = saruman

wizards["gandalf"] = gandalf


// fmt.Println(wizards)

// OK map[gandalf:map[knowledge:240 power:180 skills:210] saruman:map[knowledge:380 power:150 skills:200]]


// change gandalf property


wizards["gandalf"].(map[string]int)["knowledge"] = 110

fmt.Println(wizards["gandalf"].(map[string]int)["knowledge"])


查看完整回答
反对 回复 2022-10-17
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

需要投。


{

    saruman := map[string]int{

        "power":     150,

        "skills":    200,

        "knowledge": 380,

    }


    gandalf := map[string]int{

        "power":     180,

        "skills":    210,

        "knowledge": 240,

    }


    wizards := make(map[string]interface{})

    wizards["saruman"] = saruman

    wizards["gandalf"] = gandalf


    fmt.Println(wizards)

    //OK map[gandalf:map[knowledge:240 power:180 skills:210] saruman:map[knowledge:380 power:150 skills:200]]


    //change gandalf property

    wizards["gandalf"].(map[string]int)["knowledge"] = 10

    fmt.Println(wizards)

}


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

添加回答

举报

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