在Go语言中,接口(interface)是一种抽象类型,它定义了一组方法的集合。接口类型的变量可以存储任何实现了这些方法的具体类型的值。接口类型的使用步骤如下:
type
关键字定义接口类型,使用interface
关键字指定接口的方法集合。例如:type Shaper interface {
Area() float64
Perimeter() float64
}
上述代码定义了一个Shaper
接口,该接口定义了两个方法Area()
和Perimeter()
。
type Rectangle struct {
width, height float64
}
func (r Rectangle) Area() float64 {
return r.width * r.height
}
func (r Rectangle) Perimeter() float64 {
return 2 * (r.width + r.height)
}
上述代码定义了一个Rectangle
类型,并为其实现了Shaper
接口中的方法。
var s Shaper
s = Rectangle{width: 5, height: 3}
fmt.Println(s.Area())
fmt.Println(s.Perimeter())
上述代码中,将一个Rectangle
类型的值赋给接口类型的变量s
,然后通过该变量调用接口中定义的方法。
需要注意的是,Go语言的接口是隐式实现的,也就是说,只要一个类型实现了接口中定义的所有方法,那么该类型就被视为实现了该接口,无需显式声明。这一特性使得Go语言的接口非常灵活和易于使用。