|
|
51CTO旗下网站
|
|
移动端

9.1.7 接口组合

《Go语言编程入门与实战技巧》第9章接口与反射,本章需要注意设计类型时确认类型的本质是原始的还是非原始的。接口是声明了一组行为并支持多态的类型,嵌入类型提供了扩展类型的能力,而无须使用继承。本节为大家介绍接口组合。

作者:黄靖钧来源:电子工业出版社|2018-09-23 09:30

9.1.7  接口组合

像之前介绍的类型组合一样,Go语言同样支持接口组合。我们已经介绍过Go语言包中io.Reader接口和io.Writer接口,接下再介绍同样来自io包的另一个接口io.ReadWriter:

  1. // ReadWriter接口将基本的Read和Write方法组合起来  
  2. type ReadWriter interface {  
  3.     Reader  
  4.     Writer  
  5. }  

这个接口组合了Reader和Writer两个接口,它完全等同于如下写法:

  1. type ReadWriter interface {  
  2.     Read(p []byte) (n int, err error)  
  3.     Write(p []byte) (n int, err error)  
  4. }  

因为这两种写法的表意完全相同:ReadWriter接口既能做Reader接口的所有事情,又能做Writer接口的所有事情。在Go语言包中,还有众多类似的组合接口,比如ReadWriteCloser、ReadWriteSeeker、ReadSeeker和WriteCloser等。

可以认为接口组合是类型匿名组合的一个特定场景,只不过接口只包含方法,而不包含任何成员变量。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Linux编程技术详解

本书全面介绍了Linux编程相关的知识,内容涵盖Linux基本知识、如何建立Linux开发环境、Linux开发工具、Linux文件系统、文件I/O操作、设备文...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊