どのタイプがGolangのどのインタフェースを実装しているかを調べるには?

例:

パッケージ io に、 ByteReader タイプがあります。 ReadByte()(cバイト、エラーエラー)メソッドをラップするインターフェイスを定義します。

標準ライブラリ(どのタイプを見つけ出す ">ここにgolang.org/pkg で掲載)このインターフェースを満足させる

これはちょうど経験の問題ですか、それとも他の助けがありますか?

13
nl ru de

2 答え

主に経験によって。とにかく、例えば:

[email protected]:~/go/src/pkg$ egrep -nr '^func (.*) ReadByte\(' *
bufio/bufio.go:165:func (b *Reader) ReadByte() (c byte, err error) {
bytes/reader.go:59:func (r *Reader) ReadByte() (b byte, err error) {
bytes/buffer.go:289:func (b *Buffer) ReadByte() (c byte, err error) {
encoding/xml/xml_test.go:234:func (d *downCaser) ReadByte() (c byte, err error) {
strings/reader.go:58:func (r *Reader) ReadByte() (b byte, err error) {
[email protected]:~/go/src/pkg$ 

また、golang.orgサイトには、大文字と小文字を区別した検索機能があります。

16
追加された

単純に検索するよりも、これを行うより良い方法があります。

Go Oracleには、表示される実装のクエリがありますどのタイプが特定のインターフェースを実装し、どのインターフェースが特定のタイプを実装しているかを示します。

さらに、同じ機能を提供するツールがあります: https://github.com/dominikh/implements

4
追加された