代码拉取完成,页面将自动刷新
package main
import (
"fmt"
"math"
)
// 继续 10.3 中的练习 point_methods.go,定义接口 Magnitude,它有一个方法 Abs()。
// 让 Point、Point3 及 Polar 实现此接口。通过接口类型变量使用方法做 point.go 中同样的事情。
type Magnitude interface {
Abs() float32
}
type Point struct {
x, y float32
}
type Point3 struct {
x, y, z float32
}
func (p *Point) Abs() float32 {
return float32(math.Sqrt(float64(p.x*p.x + p.y*p.y)))
}
func (p *Point) Scale(f float32) {
p.x *= f
p.y *= f
}
func (p *Point3) Abs() float32 {
return float32(math.Sqrt(float64(p.x*p.x + p.y*p.y + p.z*p.z)))
}
func (p *Point3) Scale(f float32) {
p.x *= f
p.y *= f
p.z *= f
}
type Polar struct {
R, Theta float32
}
func (p *Polar) Abs() float32 {
return p.R
}
func AbsLess(a, b Magnitude) bool {
return a.Abs() < b.Abs()
}
func main() {
var p2 = new(Point)
p2.x = 14.0
p2.y = 15.0
p3 := &Point3{7, 7, 7}
if AbsLess(p2, p3) {
fmt.Println("p2 Abs less than p3")
} else {
fmt.Println("p3 Abs less than p2")
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。