
上QQ阅读APP看书,第一时间看更新
Go's complimentary Reader and Writer interfaces
To help us appreciate how Go encourages composition, let's look at Go's complimentary Reader and Writer interfaces:
type Reader interface {
Read(p []byte) (n int, err error)
}
type Writer interface {
Write(p []byte) (n int, err error)
}
What can we observe from these interface declarations? Simplicity.
They both have a single method that takes a single parameter and returns a single result (along with the requisite error value).
What does that buy us? For starters, we can compose broad interfaces by simply adding simpler interfaces.