欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go语言中接口组合的实现方法

程序员文章站 2022-06-24 12:50:25
本文实例讲述了go语言中接口组合的实现方法。分享给大家供大家参考。具体实现方法如下: 在go语言中,可以在接口a中组合其它的一个或多个接口(如接口b、c),这种方式等价于...

本文实例讲述了go语言中接口组合的实现方法。分享给大家供大家参考。具体实现方法如下:

在go语言中,可以在接口a中组合其它的一个或多个接口(如接口b、c),这种方式等价于在接口a中添加接口b、c中声明的方法。

复制代码 代码如下:
//接口中可以组合其它接口,这种方式等效于在接口中添加其它接口的方法 
type reader interface { 
    read() 

type writer interface { 
    write() 

 
//定义上述两个接口的实现类 
type myreadwrite struct{} 
 
func (mrw *myreadwrite) read() { 
    fmt.println("myreadwrite...read") 

 
func (mrw *myreadwrite) write() { 
    fmt.println("myreadwrite...write") 

 
//定义一个接口,组合了上述两个接口 
type readwriter interface { 
    reader 
    writer 

 
//上述接口等价于: 
type readwriterv2 interface { 
    read() 
    write() 

 
//readwriter和readwriterv2两个接口是等效的,因此可以相互赋值 
func interfacetest0104() { 
    mrw := &myreadwrite{} 
    //mrw对象实现了read()方法和write()方法,因此可以赋值给readwriter和readwriterv2 
    var rw1 readwriter = mrw 
    rw1.read() 
    rw1.write() 
 
    fmt.println("------") 
    var rw2 readwriterv2 = mrw 
    rw2.read() 
    rw2.write() 
 
    //同时,readwriter和readwriterv2两个接口对象可以相互赋值 
    rw1 = rw2 
    rw2 = rw1 
}

希望本文所述对大家的go语言程序设计有所帮助。