【发布时间】:2014-03-14 22:07:01
【问题描述】:
一些问题like this 遇到问题,在某些情况下调用:
obj.method()
如果method 接受指向对象的指针,则无效。但在某些情况下它是有效的(比如 obj 是可变的)。
问题:应该始终使用(&obj).method() 来保持一致性吗?否则,根据obj 的传递方式,在相同“类型”上调用相同方法的代码会不一致。
【问题讨论】:
标签: go
一些问题like this 遇到问题,在某些情况下调用:
obj.method()
如果method 接受指向对象的指针,则无效。但在某些情况下它是有效的(比如 obj 是可变的)。
问题:应该始终使用(&obj).method() 来保持一致性吗?否则,根据obj 的传递方式,在相同“类型”上调用相同方法的代码会不一致。
【问题讨论】:
标签: go
不,您应该仅在绝对必要时引用或取消引用该对象。 Go 在使用 selectors 时会根据需要执行此操作,并且无论如何都会使用正确的接收器类型调用该方法。如果你不这样写,你只会让试图阅读你代码的人感到困惑。
【讨论】: