Go语言接口与类型系统
接口基础
接口(interface)是Go语言实现多态和解耦的重要机制。
// 定义接口
type Speaker interface {
Speak() string
}
// 实现接口
type Cat struct{}
func (c Cat) Speak() string { return "喵" }
type Dog struct{}
func (d Dog) Speak() string { return "汪" }
// 使用接口
func makeSound(s Speaker) {
fmt.Println(s.Speak())
}
makeSound(Cat{}) // 喵
makeSound(Dog{}) // 汪- 接口只定义方法签名,不实现具体功能。
- 类型只要实现接口的所有方法即可视为实现该接口(隐式实现)。