嵌入类型,或者嵌套类型。这是一种把已有的类型,声明在新的类型里的方式,这个对程序码重复使用非常重要。
在Go语言中,没有继承的概念,Go提倡的是重复使用程序码,组合。组合而不是继承。
来透过标准函数库 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
注:发文日和截图的日期不一定是同一天,所以价格计算上和当日不同,是很正常的。 声明:这一系列文章并无...
最後一篇来个首尾呼应,回答在 Day 01 问大家的七个关於 UI 元件的问题! 你知道 为什麽会...
今天我们举例的范例依然是由彭彭影片内的范例程序码加上自己所能理解的方式做个纪录以及学习。 在影片之中...
目的 当一群相似结构的物件们,在执行相同方法时却有着不同实作内容,那可以将方法封装成独立物件。当需要...
昨天完成了log集中收拢的机,今天就来完成Observability的最後一块拼图tracing,t...