> Что такое полиморфизм в Go (Go)
Уровень: junior · Роль: backend · Язык: Go · Категория: Технические вопросы
Компании: Лига Цифровой Экономики
Стек: Go
> Пример ответа
В Go полиморфизм реализуется через интерфейсы, а не через наследование, как в классических ООП-языках. Интерфейс - это набор методов, и любой тип, который реализует все эти методы, автоматически удовлетворяет интерфейсу (утиная типизация). Это позволяет писать гибкий код, где функция или структура может работать с разными типами, если они реализуют общий интерфейс.
Пример:
GOtype Speaker interface {Speak() string}type Dog struct{}func (d Dog) Speak() string { return "Гав" }type Cat struct{}func (c Cat) Speak() string { return "Мяу" }func Greet(s Speaker) {fmt.Println(s.Speak())}func main() {Greet(Dog{}) // ГавGreet(Cat{}) // Мяу}
Здесь Greet принимает любой тип, реализующий Speaker, что и есть полиморфизм. Также в Go есть пустой интерфейс interface{} (или any в Go 1.18+), который может хранить значение любого типа, но его использование требует приведения типов. Полиморфизм в Go статический - проверка интерфейсов происходит на этапе компиляции, что обеспечивает безопасность типов.
> Похожие задачи по Go
Что такое condition variable в синхронизации
Как расположены ключи и значения в бакетах хэш-таблицы в Go?
Как модифицировать архитектуру микросервиса, чтобы обеспечить надежность обработки заказов при падении аналитического сервиса
Как написать запрос, который выберет названия всех книг с более чем тремя авторами
> Похожие задачи по backend
Что такое condition variable в синхронизации
Как расположены ключи и значения в бакетах хэш-таблицы в Go?
Как модифицировать архитектуру микросервиса, чтобы обеспечить надежность обработки заказов при падении аналитического сервиса
Как написать запрос, который выберет названия всех книг с более чем тремя авторами
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью