Подготовка к интервью

Вопросы об интерфейсах и реализации типов в Go

14 вопросов с ответами по теме «Интерфейсы в Go»

14 вопросов

Что проверяют на интервью

Как устроена подборка

Подборка о том, как типы реализуют интерфейсы Go и как интерфейсные значения ведут себя во время выполнения. Практические вопросы дополняют темы nil, получателей методов и проверки реализации примерами композиции и границ между компонентами.

Каталог

Вопросы по теме

Найдено: 14
Теория

Может ли структура в Go реализовать сразу несколько интерфейсов?

Да, в Go структура может реализовывать сразу несколько интерфейсов. В Go реализация интерфейса происходит неявно: если структура содержит все методы интерфейса, она считается его реализацией.

Читать ответ
Теория

Что Go-конвенция говорит про использование WaitGroup и возвращаемые типы (принимаем интерфейсы, возвращаем конкретные типы)?

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

Читать ответ
Теория

Что такое пустой интерфейс (interface{} / any) в Go?

Пустой интерфейс в Go — это интерфейс, который не содержит ни одного метода, записывается как interface{}. Он может хранить значение любого типа, поскольку все типы реализуют пустой интерфейс по умолчанию.

Читать ответ
Теория

Где в Go объявлять интерфейсы и как реализовать принцип инверсии зависимостей?

Где в Go объявлять интерфейсы и как реализовать принцип инверсии зависимостей? Архитектура, интерфейсы и DI Интерфейс следует определять на стороне потребителя, а не компонента-поставщика Он фиксирует набор методов,…

Читать ответ
Теория

Как receiver по значению или по указателю влияет на реализацию интерфейса двумя структурами?

Как тип receiver влияет на реализацию интерфейса двумя структурами контекст: реализация интерфейсов в Go метод с получателем-значением работает с копией объекта метод с получателем-ссылкой (указателем) способен…

Читать ответ
Теория

Как реализовать полиморфизм и инкапсуляцию без наследования с помощью встраивания структур и интерфейсов?

Полиморфизм: динамическое поведение обеспечивают интерфейсы Инкапсуляция: реализация скрывается с помощью неэкспортируемых полей и методов Встраивание структур (composition): добавление функциональности без построения…

Читать ответ
Теория

Когда интерфейс в Go считается равным nil?

В каком случае интерфейс равен nil? Интерфейс в Go включает две составляющие: тип и значение. Значение интерфейса считается nil только тогда, когда обе его части равны nil. Если тип определён, а значение равно nil,…

Читать ответ