![QQ截图20180625211932.png](https://static.studygolang.com/180625/eb875a2e0c0ec15d9116f39a65ab348c.png)
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
更多评论