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

784314557 · · 787 次点击
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