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

来源:3-4 Map

huochaiqiang

2020-11-22

老师,您好!
针对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回答

ccmouse

2020-11-23

其实同学可以简单的自己试一下。这里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
2
huochaiqiang
谢谢老师您的回复。我隐约体会到了,与Java的不同。以及map底层数据结构的差异点。
2020-11-23
共2条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程