选择值接收者还是指针接收者

使用指针接收者有两个原因。

第一,方法可以修改其接收者所指向的值。

第二,可以避免每次调用方法时都复制该值。 例如,如果接收者是一个大型结构体,这样做可能会更高效。

在这个例子中, Scale 和 Abs 都是接收者类型为 *Vertex 的方法, 尽管 Abs 方法并不需要修改其接收者。

一般来说,一个给定类型的所有方法应该统一使用值接收者或指针接收者, 而不应混合使用两者。 (接下来的几页会说明原因。)

< 8/26 >