package main import ( "fmt" "math" ) type point struct { x float64 y float64 } func (p *point) distance(other point) float64 { dx := p.x - other.x dy := p.y - other.y return math.Sqrt(dx*dx + dy*dy) } func (p *point) move(dx float64, dy float64) { p.x = p.x + dx p.y = p.y + dy } func main() { a := point{x: 0, y: 0} b := point{x: 3, y: 4} fmt.Println(a.distance(b)) // 5 a.move(1, 1) fmt.Println(a.x, a.y) // 1 1 fmt.Printf("%.3f\n", a.distance(b)) // 3.606 }