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))
}
posted @ 2019-07-19 08:59  公众号python学习开发  阅读(315)  评论(0编辑  收藏  举报