[Golang]嵌入类型,组合而不是继承。

嵌入类型,或者嵌套类型。这是一种把已有的类型,声明在新的类型里的方式,这个对程式码重複使用非常重要。
在Go语言中,没有继承的概念,Go提倡的是重複使用程式码,组合。组合而不是继承。

https://golang.org/doc/faq#inheritance

来透过标準函数库 io,来加深印象。
可以看到 ReadWriter的接口是嵌入 Reader 和 Writer 接口而组成的新接口。
这样就不要重複定义被嵌入接口里的方法,直接通过嵌入。

type Reader interface {  Read(p []byte) (n int, err error)}type Writer interface {  Write(p []byte) (n int, err error)}type Closer interface {  Close() error}type ReadWriter interface {  Reader  Writer}type ReadCloser interface {  Reader  Closer}type WriteCloser interface {  Writer  Closer}type ReadWriteCloser interface {  Reader  Writer  Closer}

参考来源:

https://www.flysnow.org/2017/04/06/go-in-action-go-embedded-type.html
https://golang.org/pkg/io/#ReadWriteCloser


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章