请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

是否可以直接修改 map value内的某个元素的值?

老师,您好!
针对Map修改值的问题,有一个疑问,就是是否可以直接修改map value内的某个元素的值,代码如下:
type User struct{
name string
age int
}
mp := make(map[int]User)
james := User{
name : “james”,
age :18,
}
mp[1] = james
//通过map引用直接修改
mp[1].age=22

正在回答

1回答

其实同学可以简单的自己试一下。这里mp[1].age他编译都过不了。

这里map里的元素我们要修改的话,必须是指针形式。

package main


type User struct {

  name string

  age  int

}


func main() {

  mp := make(map[int]*User)

  james := User{

    name: "james",

    age:  18,

  }

  mp[1] = &james

  mp[1].age = 22

}



0 回复 有任何疑惑可以回复我~
  • 提问者 huochaiqiang #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-11-23 18:09:31
  • 提问者 huochaiqiang #2
    谢谢老师您的回复。我隐约体会到了,与Java的不同。以及map底层数据结构的差异点。
    回复 有任何疑惑可以回复我~ 2020-11-23 18:10:47
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号