1
pathletboy Sep 2, 2016
其实你把 struct 当成一个函数的参数就明了了,实际上,也是一个参数,隐含的参数。
函数传参可以传值或者传址,传值的好处是可以使得结构体只读,传址可以改变结构体的成员值。 |
2
rahuahua Sep 2, 2016
好问题,暂时想不出为什么....
|
3
chzyer Sep 2, 2016
我都是看老黄历来决定的
|
4
mengzhuo Sep 2, 2016 via iPhone
不确定就用指针
只有 struct 足够小时(塞得进 L1 )传 struct ,因为指针还要多寻址一次 还有对象不传出函数的话怎么样都行 |
5
Comdex Sep 3, 2016
1 楼正解
|
6
mind3x Sep 3, 2016 via Android
理解了 immutability 的好处就能理解传值的好处了。
|
7
zeroday Sep 3, 2016 via iPhone
1. receiver 通常用指针( ref:https://github.com/golang/go/wiki/CodeReviewComments#receiver-type)
2. Slices, maps, channels, strings, function values, and interface values 实现机制类似指针,所以可以直接传递 3. 大的结构体和将要修改的结构体用指针。因为指针拷贝代价小,并且可以直接操作对象。 |
8
darasion Sep 19, 2016
绝大多数情况下,无脑使用指针即可。
一般的情况下,无意中就用值了,比如 type Foo int 的时候。 更少的情况下,不得不使用值的时候,自然会去选择用值。 |