structs.go 499 B

12345678910111213141516171819202122232425262728
  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. )
  6. // 1) 定义结构体
  7. type Point struct {
  8. X, Y float64
  9. }
  10. // 2. 给 Point 添加 Distance 方法
  11. // p.Distance(q) 算 p 到 q 的欧氏距离
  12. func (p Point) Distance(q Point) float64 {
  13. dx := p.X - q.X
  14. dy := p.Y - q.Y
  15. return math.Sqrt(dx*dx + dy*dy)
  16. }
  17. func main() {
  18. // 3) 用字面量创建两个点
  19. a := Point{X: 3, Y: 4}
  20. b := Point{X: 0, Y: 0}
  21. // 4) 调用方法
  22. fmt.Printf("a=%v, b=%v, 距离=%.2f\n", a, b, a.Distance(b)) // 期望 5.00
  23. }