接口 是方法特征的命名集合。
Example:
package main import "fmt" //让方法,实现api这个接口。 type api interface{ getname() string getnumber() int } type product struct{ name string number int } //为结构体定义两个方法。getname() getnumber() //要在 Go 中实现一个接口,我们只需要实现接口中的所有方法 func (r product) getname() string{ return r.name } func (r product) getnumber() int{ return 1*r.number } //如果一个变量的是接口类型,那么我们可以调用这个被命名的接口中的方法。 func invoke(ap api){ fmt.Println(ap.getname()) fmt.Println(ap.getnumber()) } func main(){ t := product{name:"yhleng", number: 50} //结构体类型product都实现了api接口 //所以我们可以使用它们的实例作为 invoke 的参数。 invoke(t) }
Result:
$ go run example.go
yhleng
50