Что такое интерфейс в Go, как он устроен внешне и внутренне?

В Go интерфейс — это набор методов, который описывает поведение. Любой тип, реализующий все методы интерфейса, автоматически считается его реализацией.

Короткий ответ

Что ответить на собеседовании

В Go интерфейс — это набор методов, который описывает поведение. Любой тип, реализующий все методы интерфейса, автоматически считается его реализацией.

Подробный разбор

Ответ с пояснениями

В Go интерфейс — это набор методов, который описывает поведение. Любой тип, реализующий все методы интерфейса, автоматически считается его реализацией.

Внешне интерфейс объявляется так:

type Reader interface {
    Read(p []byte) (n int, err error)
}

Внутренне интерфейс хранит:

  • Таблицу методов (method table) — указатели на функции методов.
  • Указатель на конкретный объект, который реализует эти методы.

Таким образом, интерфейс — это своего рода указатель на объект и набор методов, что позволяет реализовывать полиморфизм без явного наследования.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее