В одном пакете Go нельзя объявить интерфейс и структуру с одинаковым именем. Дайте реализации другое имя, отражающее её назначение.
Ты заметил, что название структуры реализации совпадает с именем интерфейса — компилятору это не понравится, как это исправить?
В одном пакете Go нельзя объявить интерфейс и структуру с одинаковым именем. Дайте реализации другое имя, отражающее её назначение.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В одном пакете Go нельзя объявить интерфейс и структуру с одинаковым именем. Дайте реализации другое имя, отражающее её назначение.
Например, интерфейс Repository и структура PostgresRepository могут существовать в одном пакете, а два типа Repository — нет. Реализацию можно сделать неэкспортируемой и возвращать её через конструктор с интерфейсным типом. В разных пакетах одинаковые имена допустимы благодаря квалификатору пакета; переименование не должно менять публичный контракт без необходимости.