¿Llamar a un método con un receptor de puntero por un objeto en lugar de un puntero a él?

v es un objeto deVertexyScale es un método para que un punteroVertex. Entonces por qué esv.Scale(10) no está mal, dado quev no es un puntero a unVertex ¿objeto? Gracias.

package main

import (
    "fmt"
    "math"
)

type Vertex struct {
    X, Y float64
}

func (v Vertex) Abs() float64 {
    return math.Sqrt(v.X*v.X + v.Y*v.Y)
}

func (v *Vertex) Scale(f float64) {
    v.X = v.X * f
    v.Y = v.Y * f
}

func main() {
    v := Vertex{3, 4}
    v.Scale(10)
    fmt.Println(v.Abs())
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta