本文共 1301 字,大约阅读时间需要 4 分钟。
在go语言中,一个类只要实现了接口要求的所有函数,我们就说这个类实现了这个接口。
golang接口赋值实现方式一:将对象实例赋值给接口
package mainimport "fmt"//定义一个Animal接口,实现飞和跑的功能type Animal interface { Fly() Run()}//定义一个Bird类type Bird struct {}//通过类实现接口的函数功能func (bird Bird) Fly() { fmt.Println("the bird is flying!!!")}func (bird Bird) Run() { fmt.Println("the bird is running!!!")}func main() { // 声明一个Animal接口类型的变量 var animal Animal //声明一个Bird类型的变量,并将其置0 //new()函数是一个用来分配内存的内建函数,它不初始化内存,只将其置0。 bird := new(Bird) //把bird对象赋值给animal接口 animal = bird //调用接口中的函数功能 animal.Fly() animal.Run()}
golang接口赋值实现方式二:将接口赋值给接口
package mainimport "fmt"//定义一个Animal接口,实现飞和跑的功能type Animal interface { Fly() Run()}type Animal2 interface { Fly()}//定义一个Bird类type Bird struct {}//通过类实现接口的函数功能func (bird Bird) Fly() { fmt.Println("the bird is flying!!!")}func (bird Bird) Run() { fmt.Println("the bird is running!!!")}func main() { // 声明一个Animal接口类型的变量 var animal Animal var animal2 Animal2 //声明一个Bird类型的变量,并将其置0 //new()函数是一个用来分配内存的内建函数,它不初始化内存,只将其置0。 bird := new(Bird) //把bird对象赋值给animal接口 animal = bird //将animal接口赋值给animal2,注意函数功能包含关系,包含方法多的接口可以赋值给方法少的接口,反之,则不行。 animal2 = animal //调用接口中的函数功能 animal.Fly() animal.Run() animal2.Fly()}
转载于:https://blog.51cto.com/huwho/2307623