代码拉取完成,页面将自动刷新
package main
import (
"fmt"
"math"
)
// a) 扩展 interfaces_poly.go 中的例子,添加一个 Circle 类型
// b) 使用一个抽象类型 Shape(没有字段) 实现同样的功能,它实现接口 Shaper,然后在其他类型里内嵌此类型。扩展 10.6.5 中的例子来说明覆写。
type Shaper interface {
Area() float32
}
type Square struct {
side float32
}
func (s Square) Area() float32 {
return s.side * s.side
}
type Rectangle struct {
x, y float32
}
func (r Rectangle) Area() float32 {
return r.x * r.y
}
type Circle struct {
r float32
}
func (c Circle) Area() float32 {
return math.Pi * c.r * c.r
}
func main() {
s := Square{5}
r := Rectangle{4, 7}
c := Circle{6.0}
shapers := []Shaper{s, r, c}
for _, shape := range shapers {
fmt.Println("shape struct(", shape, ") Area(): ", shape.Area())
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。