为了账号安全,请及时绑定邮箱和手机立即绑定

努力了解接口类型的目的

努力了解接口类型的目的

Go
ibeautiful 2021-06-16 06:21:30
我最近喜欢 Go 编程语言,到目前为止我发现它很棒,但我真的很难理解接口。我已经阅读了很多关于它们的内容,但它们对我来说仍然很抽象。我写了一小段代码,使用下面的接口:package mainimport (  "fmt"  "math")type Circer interface {    Circ() float64}type Square struct {    side float64}type Circle struct {    diam, rad float64}func (s *Square) Circ() float64 {    return s.side * 4}func (c *Circle) Circ() float64 {    return c.diam * math.Pi}func (c *Circle) Area() float64 {    if c.rad == 0 {        var rad = c.diam / 2        return (rad*rad) * math.Pi    } else {        return (c.rad*c.rad) * math.Pi    }}func main() {    var s = new(Square)    var c = new(Circle)    s.side = 2    c.diam = 10    var i Circer = s    fmt.Println("Square Circ: ", i.Circ())    i = c    fmt.Println("Circle Circ: ", i.Circ())}我真的看不出 Circer 界面的用途。方法已经写好了,我可以通过直接在结构上调用它们来节省两行代码,而不是使用 Circer 作为包装器。有什么我想念的吗?我是否错误地使用了界面?任何帮助或示例表示赞赏。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信