Назад к вопросам
Principal
2
Что такое интерфейс в Go, как он устроен внешне и внутренне?
Компании, где спрашивали
BetBoom
Ответ от нейросети
sobes.tech AI
В Go интерфейс — это набор методов, который описывает поведение. Любой тип, реализующий все методы интерфейса, автоматически считается его реализацией.
Внешне интерфейс объявляется так:
type Reader interface {
Read(p []byte) (n int, err error)
}
Внутренне интерфейс хранит:
- Таблицу методов (method table) — указатели на функции методов.
- Указатель на конкретный объект, который реализует эти методы.
Таким образом, интерфейс — это своего рода указатель на объект и набор методов, что позволяет реализовывать полиморфизм без явного наследования.