Với thiết lập trong 54th slide của các tour du lịch golang:Tại sao không thể định nghĩa một phương thức cho cả cấu trúc và con trỏ?
type Abser interface {
Abs() float64
}
type Vertex struct {
X, Y float64
}
func (v *Vertex) Abs() float64 {
return math.Sqrt(v.X*v.X + v.Y*v.Y)
}
Tại sao có thể không phải là một phương pháp cũng được định nghĩa cho các cấu trúc cũng như các con trỏ đến struct? Đó là:
func (v Vertex) Abs() float64 {
return math.Sqrt(v.X*v.X + v.Y*v.Y)
}
Định nghĩa này mang lại cho các lỗi sau:
prog.go:41: method redeclared: Vertex.Abs
method(*Vertex) func() float64
method(Vertex) func() float64
[Xem thêm] (http://stackoverflow.com/q/13303254/720999) – kostix