go面试题:为什么v.name都是博客?
type student struct {
name string
age int
}
func main() {
m := make(map[string]*student)
stus := []student{
{name: "pprof.cn", age: 18},
{name: "测试", age: 23},
{name: "博客", age: 28},
}
for _, stu := range stus {
m[stu.name] = &stu
}
for k, v := range m {
fmt.Println(k, "=>", v.name)
}
}
回复
1个回答

test
2024-07-10
https://draveness.me/golang/d...__
for range 的 k,v 是固定的内存地址,只是循环的时候不断给它赋值,如果使用 &stu 那就是指向同一块内存地址。所以就会在最后一次赋值完成后,都是博客
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容