package main
import (
"fmt"
"math"
)
type Vertexs struct {
X, Y float64
}
//Abs 方法拥有一个名为 v,类型为 Vertex 的接收者。
//方法接收者在它自己的参数列表内,位于 func 关键字和方法名之间。
func (v Vertexs) Abs() float64 {
return math.Sqrt(v.X*v.X + v.Y*v.Y)
}
func main() {
v := Vertexs{3, 4}
fmt.Println(v.Abs())
}
方法只是个带接收者参数的函数。
现在这个 Abs 的写法就是个正常的函数,功能并没有什么变化。
package main
import (
"fmt"
"math"
)
type Verte struct {
X, Y float64
}
func Abs1(v Verte) float64 {
return math.Sqrt(v.X*v.Y + v.Y*v.Y)
}
func main() {
v := Verte{3, 4}
fmt.Println(Abs1(v))
}