我在工作中讨论过接口名称和方法编号之间的相关性。er特别是,对于名称以 结尾的后缀表示法的接口,有一条不成文的规定。规则说这样的接口应该包含一个方法。
让我们跳进一个例子。在标准的 Go 语言库中,有Pusher一个接口可以做一件事“Push initiates an HTTP/2 server push”。这是它的定义:
type Pusher interface {
Push(target string, opts *PushOptions) error
}
https://golang.org/pkg/net/http/#Pusher
好例子。但是,一些同事为他的实现辩护,该实现包含两个以上的er名称后缀的方法。主要论点是存在违反此类规则的 stdlib 接口。他指的是界面ReadCloser。
看看它的定义:
type ReadCloser interface {
Reader
Closer
}
https://golang.org/pkg/io/#ReadCloser
我可以说这是错误的假设。接口本身嵌入了另外两个接口。我怎么解释?没有违反规则。
你将如何解读这样的案例?
慕田峪9158850
相关分类