http://go-tour-jp.appspot.com/#50 にて
type Vertex struct { X, Y float64 } func (v *Vertex) Abs() float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y) } func main() { v := &Vertex{3, 4} fmt.Println(v.Abs()) v1 := Vertex{3, 4} fmt.Println(v1.Abs()) }
どちらも動くみたい。 Absメソッドを func (v Vertex) Abs() としても変わらない。この辺の扱いがまだ良くわからない。自分の好きな方で書いて構わないのだろうか。
[追記] #52に書いてることはだいたい理解できる。構造体に対してはポインタで、基本型の派生に対しては値型で宣言しておくとコード読みやすくなるかも。
[追記] と思ったら #53でまた分からなくなった