インターフェイス名とそのメソッドの番号の相関関係について職場で議論したもの。er
特に、接尾辞表記が名前の最後にあるインターフェイスについては、不文律があります。この規則では、そのようなインターフェイスには 1 つのメソッドが含まれている必要があります。
例を見てみましょう。標準の Go 言語ライブラリには、Pusher
「Push が HTTP/2 サーバー プッシュを開始する」という 1 つのことを行うインターフェイスがあります。その定義は次のとおりです。
type Pusher interface {
Push(target string, opts *PushOptions) error
}
https://golang.org/pkg/net/http/#Pusher
良い例え。er
しかし、一部の同僚は、名前の接尾辞が 2 つ以上のメソッドを含む彼の実装を擁護しました。主な議論は、そのような規則に違反する stdlib のインターフェースがあるというものでした。彼はインターフェースに言及しましたReadCloser
。
その定義を見ると:
type ReadCloser interface {
Reader
Closer
}
https://golang.org/pkg/io/#ReadCloser
間違った仮定と言えます。インターフェイスは、それ自体に他の 2 つのインターフェイスを組み込みます。私はそれをどのように解釈しますか?ルールに違反していません。
このような場合、あなたはどのように解釈しますか?