我正在学习指针接收器,并注意到当我使用变量的地址调用该方法时出现错误./prog.go:21:10: v.Scale(10) used as value
我可以仅使用变量名或使用指针来调用该方法。我试图理解为什么当我使用变量的地址调用&v.Scale(10)而方法需要Vertex类型指针时 Go 会抱怨
import (
"fmt"
)
type Vertex struct {
X, Y float64
}
func (v *Vertex) Scale(f float64) {
v.X = v.X * f
v.Y = v.Y * f
}
func main() {
v := Vertex{3, 4}
var p *Vertex
p=&v
v.Scale(10) //This works
p.Scale(10) //This works
&v.Scale(10) // This does not work
fmt.Println(v)
}
三国纷争
相关分类