ag视讯

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.}
关怀兄弟连更多超卓内容等着你

免费本钱

开班动静

当前校区

北京校区
  • 北京校区
  • 上海校区
  • 广州校区
  • 沈阳校区
  • 杭州校区
  • 南京校区
  • 郑州校区
  • 成都校区
  • 深圳校区
  • 西安校区
  • 姑苏校区
  • 深圳沙井
  • 深圳不雅澜
  • 深圳龙岗
  • 武汉校区
  • 西宁校区
  • 石家庄校区
  • 湖北咸宁
  • 广东惠州
  • 广东佛山
  • 北京 UI/UE就业班 2019-04-17
  • 北京 PHP就业班 2019-04-18
  • 北京 Java熬炼营 2019-04-24
  • 北京 Python熬炼营 2019-04-24
  • 北京 Java就业班 2019-05-09
  • 北京 Python就业班 2019-05-09
  • 北京 PHP就业班 2019-05-16
  • 上海 Java就业班 2019-05-09
  • 上海 Python就业班 2019-05-09
  • 上海 PHP就业班 2019-06-20
  • 上海 Java就业班 2019-07-17
  • 上海 Python就业班 2019-07-17
  • 上海 PHP就业班 2019-07-25
  • 上海 PHP就业班 2019-08-22
  • 广州 PHP就业班 2019-04-18
  • 广州 Python就业班 2019-05-09
  • 广州 Java就业班 2019-05-09
  • 广州 PHP就业班 2019-06-19
  • 广州 PHP就业班 2019-07-17
  • 广州 Python就业班 2019-07-17
  • 广州 Java就业班 2019-07-17
  • 沈阳 UI/UE就业班 2019-04-17
  • 沈阳 PHP就业班 2019-04-18
  • 沈阳 Java就业班 2019-05-09
  • 沈阳 PHP就业班 2019-05-16
  • 沈阳 PHP就业班 2019-06-19
  • 沈阳 UI/UE就业班 2019-06-20
  • 沈阳 PHP就业班 2019-07-17
  • 杭州 PHP就业班 2019-05-16
  • 杭州 PHP就业班 2019-06-19
  • 杭州 Python就业班 2019-07-17
  • 南京 PHP就业班 2019-05-16
  • 南京 Java就业班 2019-06-11
  • 南京 PHP就业班 2019-07-17
  • 南京 Java就业班 2019-08-13
  • 郑州 PHP就业班 2019-04-18
  • 郑州 PHP就业班 2019-05-16
  • 郑州 Python就业班 2019-06-11
  • 郑州 PHP就业班 2019-06-19
  • 郑州 PHP就业班 2019-07-17
  • 郑州 UI/UE就业班 2019-07-18
  • 郑州 Java就业班 2019-08-13
  • 成都 Python就业班 2019-06-11
  • 成都 Python就业班 2019-08-13
  • 成都 Python预科班 2019-09-24
  • 成都 Python就业班 2019-10-29
  • 成都 Python预科班 2019-12-18
  • 深圳 UI/UE就业班 2019-04-17
  • 深圳 PHP就业班 2019-04-18
  • 深圳 Java就业班 2019-05-09
  • 深圳 Java就业班 2019-06-11
  • 深圳 UI/UE就业班 2019-06-20
  • 深圳 Java就业班 2019-07-17
  • 深圳 PHP就业班 2019-07-17
  • 西安 PHP就业班 2019-04-18
  • 西安 Python预科班 2019-04-23
  • 西安 PHP预科班 2019-04-23
  • 西安 Java就业班 2019-05-09
  • 西安 Python预科班 2019-05-17
  • 西安 PHP预科班 2019-05-17
  • 西安 Java就业班 2019-06-11
  • 姑苏 PHP就业班 2019-04-18
  • 姑苏 UI/UE就业班 2019-05-22
  • 姑苏 PHP就业班 2019-06-19
  • 姑苏 UI/UE就业班 2019-07-18
  • 姑苏 PHP就业班 2019-08-21

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