0
点赞
收藏
分享

微信扫一扫

Go+ 接口(Interface)



结构体(Struct)

  • ​​一、GO+ 概述​​
  • ​​二、定义​​
  • ​​三、定义结构体​​
  • ​​四、完整代码实例​​


官方线上GO+练习环境:​​https://play.goplus.org/​​

一、GO+ 概述

Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。

前面的文章已经介绍了 Go+ 如何定义结构体方法,熟悉 Go+ 的小伙伴都知道接口是方法签名的命名集合。学会接口是非常必要的,接下来我们就来了解一下这部分的一些内容

二、定义

首先,我们定义一个非常简单的关于几何图形的接口,包含两个最基本的接口方法——计算面积和计算周长,代码如下:

type geometry interface {
area() float64
perim() float64
}

三、定义结构体

接下来,我们定义两个结构体,分别是矩形结构体和圆形结构体,具体代码如下

type rect struct {
width float64,
height float64
}
type circle struct {
radius float64
}

然后分别实现上面定义的接口方法,矩形结构体相关代码如下:

func (c circle) area() float64 {
return math.Pi * c.radius * c.radius
}
func (c circle) perim() float64 {
return 2 * math.Pi * c.radius
}

四、完整代码实例

现在通过一段完整的代码实例来了解一下接口是如何被实际使用的,代码如下:

import (
"math"
)

type geometry interface {
area() float64
perim() float64
}

type rect struct {
width float64
height float64
}
type circle struct {
radius float64
}

func (r rect) area() float64 {
return r.width * r.height
}
func (r rect) perim() float64 {
return 2*(r.width + r.height)
}

func (c circle) area() float64 {
return math.Pi * c.radius * c.radius
}
func (c circle) perim() float64 {
return 2 * math.Pi * c.radius
}

func measure(g geometry) {
println(g)
println("面积:", g.area())
println("周长:", g.perim())
}


r := rect{width: 6, height: 9}
c := circle{radius: 2}

measure(r)
measure(c)

执行结果:

{6 9}
面积: 54
周长: 30
{2}
面积: 12.566370614359172
周长: 12.566370614359172


举报

相关推荐

0 条评论