• 在习近平新时代中国特色社会主义思想指引下——新时代 新作为 新篇章——山西黄河新闻网 2019-04-11
  • 《这就是铁甲》迎来总决赛 郑爽放手一搏 2019-04-11
  • 大厨风范的海鲜做法,小白也能学会,鲜美营养,好吃到哭 2019-04-09
  • 暴雨突袭石泉 干部背群众转移到安全地带 2019-04-06
  • 军报评论:把红色基因一代代传下去 2019-04-06
  • 扎实推进民族团结和边疆稳固 2019-04-05
  • 美媒:无人驾驶或将最先在华实现 2019-04-05
  • 今年春运购票变化大 回家的车票该咋买? 2019-03-21
  • 人民日报:传统节日,从美食走向美感 2019-03-14
  • “中国式创新”刷新汉语词库 2019-03-04
  • 手工红薯粉丝 ——舌尖上的年味与乡愁文章中国国家地理网 2019-02-25
  • 中共山西省委组织部公示 2019-02-24
  • [微笑]其实很简单就能破这个局:立法禁止通过房地产二次交易获利,炒房就会被杜绝,炒房一旦被杜绝,房价就会受正常供需关系影响波动在合理范围内。 2019-02-24
  • 400-700-1307

    【GO+区块链面试题】考点foreach

    2019-01-26 17:05
    以下代码有什么问题,说明原因。
     
    1.type student struct {
    2.Name string
    3.Age  int
    4.}
    5.func pase_student() {
    6.m := make(map[string]*student)
    7.stus := []student{
    8.{Name: "zhou", Age: 24},
    9.{Name: "li", Age: 23},
    10.{Name: "wang", Age: 22},
    11.}
    12.for _, stu := range stus {
    13.m[stu.Name] = &stu
    14.}
    15.}
    考点:foreach
    解答:
    这样的写法初学者经?;嵊龅降?,很危险! 与Java的foreach一样,都是使用副本的方式。所以m[stu.Name]=&stu实际上一致指向同一个指针, 最终该指针的值为遍历的最后一个struct的值拷贝。 就像想修改切片元素的属性:
     
    1.for _, stu := range stus {
    2.stu.Age = stu.Age+10
    3.}
    也是不可行的。 大家可以试试打印出来:

     
    1.func pase_student() {
    2.m := make(map[string]*student)
    3.stus := []student{
    4.{Name: "zhou", Age: 24},
    5.{Name: "li", Age: 23},
    6.{Name: "wang", Age: 22},
    7.}
    8.// 错误写法
    9.for _, stu := range stus {
    10.m[stu.Name] = &stu
    11.}
    12.for k,v:=range m{
    13.println(k,"=>",v.Name)
    14.}
    15.// 正确
    16.for i:=0;i<len(stus);i++  {
    17.m[stus[i].Name] = &stus[i]
    18.}
    19.for k,v:=range m{
    20.println(k,"=>",v.Name)
    21.}
    22.}
    关注广州快乐十分钟下载更多精彩内容等着你

    开班信息

    当前校区

    北京校区
    • 北京校区
    • 上海校区
    • 广州校区
    • 沈阳校区
    • 杭州校区
    • 南京校区
    • 郑州校区
    • 成都校区
    • 深圳校区
    • 西安校区
    • 苏州校区

    Copyright © 2007-2019 IT兄弟连教育 版权所有 京ICP备11018177号  京公网安备 11010802026987号

  • 在习近平新时代中国特色社会主义思想指引下——新时代 新作为 新篇章——山西黄河新闻网 2019-04-11
  • 《这就是铁甲》迎来总决赛 郑爽放手一搏 2019-04-11
  • 大厨风范的海鲜做法,小白也能学会,鲜美营养,好吃到哭 2019-04-09
  • 暴雨突袭石泉 干部背群众转移到安全地带 2019-04-06
  • 军报评论:把红色基因一代代传下去 2019-04-06
  • 扎实推进民族团结和边疆稳固 2019-04-05
  • 美媒:无人驾驶或将最先在华实现 2019-04-05
  • 今年春运购票变化大 回家的车票该咋买? 2019-03-21
  • 人民日报:传统节日,从美食走向美感 2019-03-14
  • “中国式创新”刷新汉语词库 2019-03-04
  • 手工红薯粉丝 ——舌尖上的年味与乡愁文章中国国家地理网 2019-02-25
  • 中共山西省委组织部公示 2019-02-24
  • [微笑]其实很简单就能破这个局:立法禁止通过房地产二次交易获利,炒房就会被杜绝,炒房一旦被杜绝,房价就会受正常供需关系影响波动在合理范围内。 2019-02-24