mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 03:55:28 +08:00
29 lines
392 B
Go
29 lines
392 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math"
|
|
)
|
|
|
|
type Point struct {
|
|
x, y float64
|
|
}
|
|
|
|
func (p *Point) Abs() float64 {
|
|
return math.Sqrt(p.x*p.x + p.y*p.y)
|
|
}
|
|
|
|
type NamedPoint struct {
|
|
Point
|
|
name string
|
|
}
|
|
|
|
func (n *NamedPoint) Abs() float64 {
|
|
return n.Point.Abs() * 100.
|
|
}
|
|
|
|
func main() {
|
|
n := &NamedPoint{Point{3, 4}, "Pythagoras"}
|
|
fmt.Println(n.Abs()) // prints 500
|
|
}
|