Как узнать, какие типы реализуют интерфейс в Голанге?

Пример:

В пакете io введите ByteReader определяет интерфейс, который обертывает метод ReadByte() (c байт, ошибка ошибки) .

Самый простой способ найти тип в стандартной библиотеке (т. Е. , перечисленные здесь в golang.org/pkg ) удовлетворяют этому интерфейсу ?

Это только вопрос опыта или есть ли какая-то другая помощь?

13
nl ja 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
добавлено
Go, go!
Go, go!
2 417 участник(ов)

Русскоязычная группа, посвящённная Golang. Для вакансий: @gogetajob Правила: #gogorules О вакансиях: #go_вакансия_правила Не приветствуются: - оскорбления - nsfw контент - флуд, флейм и спам - избыток оффтоп тем - политика Тиран чатика: @twentydraft

Golang Jobs and Freelance
Golang Jobs and Freelance
760 участник(ов)

Jobs and freelance for golang developers See also @golangjobfeed

Go Get A Job
Go Get A Job
501 участник(ов)

Филиал @gogolang Тираны чатика те же :)