https://tour.golang.org/methods/4
刚开始学 go,从 A Tour of Go 开始看的,求大佬帮忙看看,非常感谢
package main
import (
"fmt"
"math"
)
type Vertex struct {
X, Y float64
}
func (v Vertex) Abs() float64 {
return math.Sqrt(v.Xv.X + v.Yv.Y)
}
func (v *Vertex) Scale(f float64) { //这里 receiver 的类型是 指针类型
v.X = v.X * f
v.Y = v.Y * f
}
func main() {
v := Vertex{3, 4}
v.Scale(10) //但是 v 是 Vertex 类型啊?为什么也能运行通过?
fmt.Println(v.Abs())
}
package main
import (
"fmt"
"math"
)
type Vertex struct {
X, Y float64
}
func (v Vertex) Abs() float64 {
return math.Sqrt(v.Xv.X + v.Yv.Y)
}
func (v *Vertex) Scale(f float64) {
v.X = v.X * f
v.Y = v.Y * f
}
func main() {
v := Vertex{3, 4}
var m *Vertex
m = &v //我理解的应该是这样的
m.Scale(10)
fmt.Println(v.Abs())
}