接口的理解
在 Go 语言中,只要一个类型实现了某个接口,那么它就可以作为该接口的实例被使用
gopackage main
import "fmt"
// 定义一个接口 Speaker
type Speaker interface {
Speak()
}
// 定义一个结构体 Dog
type Dog struct{}
// 让 Dog 实现 Speak 方法
func (d Dog) Speak() {
fmt.Println("汪汪汪!")
}
// 定义一个结构体 Cat
type Cat struct{}
// 让 Cat 实现 Speak 方法
func (c Cat) Speak() {
fmt.Println("喵喵喵!")
}
// 定义一个通用的说话函数
func MakeSpeak(s Speaker) {
s.Speak() // 只要是实现了 Speaker 接口的类型都能调用
}
func main() {
dog := Dog{}
cat := Cat{}
// Dog 和 Cat 都实现了 Speaker 接口,因此可以作为 Speaker 传入
MakeSpeak(dog)
MakeSpeak(cat)
}
本文作者:曹子昂
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!