go之构造体方法

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))
}

猜你喜欢

转载自www.cnblogs.com/c-x-a/p/11211183.html