方法能夠與命名類型或命名類型的指針關聯。指針
剛剛看到的兩個 Abs
方法。一個是在 *Vertex
指針類型上,而另外一個在 MyFloat
值類型上。 有兩個緣由須要使用指針接收者。首先避免在每一個方法調用中拷貝值(若是值類型是大的結構體的話會更有效率)。其次,方法能夠修改接收者指向的值。code
嘗試修改 Abs
的定義,同時 Scale
方法使用 Vertex
代替 *Vertex
做爲接收者。效率
當 v
是 Vertex
的時候 Scale
方法沒有任何做用。`Scale` 修改 `v`。當 v
是一個值(非指針),方法看到的是 Vertex
的副本,而且沒法修改原始值。import
Abs
的工做方式是同樣的。只不過,僅僅讀取 `v`。因此讀取的是原始值(經過指針)仍是那個值的副本並無關係。float