我目前正在学习用围棋语言编程. 我在理解围棋指针时遇到了一些困难(我的C/C++现在已经很远了…). 例如,在52号围棋巡回赛(http://tour.golang.org/#52)中,我读到:
type Vertex struct {
X, Y float64
}
func (v *Vertex) Abs() float64 {
return math.Sqrt(v.X*v.X + v.Y*v.Y)
}
func main() {
v := &Vertex{3, 4}
fmt.Println(v.Abs())
}
但是如果
func (v *Vertex) Abs() float64 {
[...]
v := &Vertex{3, 4}
我写道:
func (v Vertex) Abs() float64 {
[...]
v := Vertex{3, 4}
甚至:
func (v Vertex) Abs() float64 {
[...]
v := &Vertex{3, 4}
反之亦然:
func (v *Vertex) Abs() float64 {
[...]
v := Vertex{3, 4}
我得到了完全相同的结果.有区别吗(记忆方面的,等等)?