继吉 发表于 2018-9-21 06:56:06

Golang经典笔试题及答案(上篇)

  执行结果:
  key=zhou,value=&{wang 22}
  key=li,value=&{wang 22}
  key=wang,value=&{wang 22}
  发现value都是一样的,这是因为19行的&stu是指针,地址都保持不变,所以每个遍历都是值拷贝,所以实际上
  m=%stu都是指向的是同一个地址,最终遍历后的值都是最后一个map的值,wang,22
  应该改成
  for i, _ := range stus {
  stu=stus
  m = &stu
  }
  以上代码是将stus遍历的每个值进行拷贝,拷贝完后每个地址的值都不一样。

页: [1]
查看完整版本: Golang经典笔试题及答案(上篇)