一个接口是一个定义了一个或多个方法签名的类型。
方法没有被实现,只有其签名:名称、参数类型和返回值类型。
类似这样的东西。
type Speaker interface {
Speak()
}
现在你可以让一个函数接受任何实现了接口所定义的所有方法的类型。
func SaySomething(s Speaker) {
s.Speak()
}
而我们可以把实现这些方法的任何结构传递给它。
type Speaker interface {
Speak()
}
type Person struct {
Name string
Age int
}
func (p Person) Speak() {
fmt.Println("Hello from " + p.Name)
}
func SaySomething(s Speaker) {
s.Speak()
}
func main() {
flavio := Person{Age: 39, Name: "Flavio"}
SaySomething(flavio)
}
下载我的免费围棋手册!
下载我的免费编程电子书!