在Golang中,接口定义的方式非常简单,只需要使用关键字type
和interface
即可。接口定义了一组方法的集合,任何类型只要实现了接口中的所有方法,就被认为是实现了该接口。
接口的定义方式如下:
type InterfaceName interface {
Method1() returnType1
Method2() returnType2
// 可以定义多个方法
}
接口的实现也非常简单,只需要在类型上实现接口中的所有方法即可。例如,如果我们有一个接口Animal
和一个结构体Dog
,我们可以实现Animal
接口:
package main
import (
"fmt"
)
// 定义接口
type Animal interface {
Speak() string
}
// 定义结构体
type Dog struct {
Name string
}
// 实现接口方法
func (d Dog) Speak() string {
return "Woof!"
}
func main() {
// 创建一个Dog类型的变量
var myDog Animal
myDog = Dog{Name: "Buddy"}
// 调用接口方法
fmt.Println(myDog.Speak()) // 输出: Woof!
}
在上面的例子中,我们定义了一个接口Animal
,其中有一个方法Speak()
,然后我们定义了一个结构体Dog
,并实现了Animal
接口中的Speak()
方法。最后,我们创建了一个Dog
类型的变量,并将其赋值给接口类型Animal
,然后调用了接口方法Speak()
。