跪求大神看一下我这段代码有什么问题

784314557 · 2018-06-25 21:15:32 · 927 次点击
  1. 应该分清什么是值传递和引用传递。go里都是值传递。
  2. func的receiver也是值传递。
  3. 图中代码执行完毕后,结果为<nil>。原因是append的receiver把main中的a的值拷贝了一下,所以append中的this的值为nil
  4. append中的参数a的值确实赋值给了this,但main中的a并不是append中的this,所以main中的fmt还是输出了nil值的a。 根本原因在于:main中的a不是this。
#4
更多评论

main方法中,a.append执行之后, fmt正常应该输出append添加进去的内容 但是执行之后发现append的赋值没有成功

#1

go 的传值方式,this=a 是改变不了外面的a 的,试试 this.val=a.val

#2