Что такое интерфейсы в Go?

Junior
1.5k просмотров
AFK Offer AI

Интерфейс — набор сигнатур методов. Реализация неявная: если тип имеет все методы интерфейса, он его реализует автоматически, без implements.

type Writer interface {
    Write(p []byte) (n int, err error)
}

type MyWriter struct{}

func (w MyWriter) Write(p []byte) (int, error) { return len(p), nil }

Это позволяет писать слабо связанный код. Интерфейсы в Go принято делать маленькими (1-2 метода). Внутри интерфейсная переменная хранит пару (тип, значение).

Следующий вопрос

Что такое embedding в Go?