go 学习 4 方法

方法就是一类带特殊的 接收者 参数的函数。

func (v Vertex) Abs() float64 {
    return math.Sqrt(v.X*v.X + v.Y*v.Y)
}

正常函数:

func Abs(v Vertex) float64 {
    return math.Sqrt(v.X*v.X + v.Y*v.Y)
}

指针接收者的方法可以修改接收者指向的值。 由于方法经常需要修改它的接收者,指针接收者比值接收者更常用。

以指针为接收者的方法被调用时,接收者既能为值又能为指针。

使用指针接收者的原因有二:

首先,方法能够修改其接收者指向的值。

其次,这样可以避免在每次调用方法时复制该值。若值的类型为大型结构体时,这样做会更加高效

原文地址:https://www.cnblogs.com/arwen-spy/p/6505777.html