方法能够与命名类型或命名类型的指针关联。指针
刚刚看到的两个 Abs
方法。一个是在 *Vertex
指针类型上,而另外一个在 MyFloat
值类型上。 有两个缘由须要使用指针接收者。首先避免在每一个方法调用中拷贝值(若是值类型是大的结构体的话会更有效率)。其次,方法能够修改接收者指向的值。code
尝试修改 Abs
的定义,同时 Scale
方法使用 Vertex
代替 *Vertex
做为接收者。效率
当 v
是 Vertex
的时候 Scale
方法没有任何做用。`Scale` 修改 `v`。当 v
是一个值(非指针),方法看到的是 Vertex
的副本,而且没法修改原始值。import
Abs
的工做方式是同样的。只不过,仅仅读取 `v`。因此读取的是原始值(经过指针)仍是那个值的副本并无关系。float