golang代码接口
时间: 2024-03-19 21:36:55 浏览: 183
Golang中的接口是一种类型,它定义了一组方法的集合。接口提供了一种方式来描述对象的行为,而不关心对象的具体类型。通过接口,我们可以实现多态性和代码的灵活性。
以下是一个简单的示例,演示了如何定义和使用接口:
```go
package main
import "fmt"
// 定义一个接口
type Shape interface {
Area() float64
Perimeter() float64
}
// 定义一个矩形结构体
type Rectangle struct {
width float64
height float64
}
// 实现Shape接口的Area方法
func (r Rectangle) Area() float64 {
return r.width * r.height
}
// 实现Shape接口的Perimeter方法
func (r Rectangle) Perimeter() float64 {
return 2 * (r.width + r.height)
}
// 定义一个圆形结构体
type Circle struct {
radius float64
}
// 实现Shape接口的Area方法
func (c Circle) Area() float64 {
return 3.14 * c.radius * c.radius
}
// 实现Shape接口的Perimeter方法
func (c Circle) Perimeter() float64 {
return 2 * 3.14 * c.radius
}
func main() {
// 创建一个矩形对象
rectangle := Rectangle{width: 5, height: 3}
// 创建一个圆形对象
circle := Circle{radius: 4}
// 使用接口类型的变量来调用方法
shapes := []Shape{rectangle, circle}
for _, shape := range shapes {
fmt.Println("Area:", shape.Area())
fmt.Println("Perimeter:", shape.Perimeter())
}
}
```
这个示例中,我们定义了一个`Shape`接口,它包含了`Area()`和`Perimeter()`两个方法。然后我们分别定义了`Rectangle`和`Circle`两个结构体,并实现了`Shape`接口的方法。在`main`函数中,我们创建了一个包含了矩形和圆形对象的切片,并使用接口类型的变量来调用方法。
运行以上代码,将会输出矩形和圆形的面积和周长。
阅读全文