go语言从例子开始之Example19.接口

接口 是方法特征的命名集合。

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

坐标: 上一个例子下一个例子