Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: golang, typing, duck, static

Чем статическая типизация в Go отличается от утиной?

Вопрос проверяет понимание различий между разными видами типизации

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

Go статически типизирован, но поддерживает “утиную типизацию” через интерфейсы: тип совместим с интерфейсом, если реализует его методы.

Длинный ответ

Статическая типизация — проверки типов происходят во время компиляции.

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

Пример:

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

type MyReader struct{}
func (MyReader) Read(p []byte) (int, error) { return 0, nil }

var r Reader = MyReader{}

Плюсы Go-подхода

  • Гибкость (легче тестировать, подменять реализации).

  • Сильная типизация при этом сохраняется.

Вывод: Это даёт гибкость интерфейсов без потери строгой типизации.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    4

Навыки

  • Golang

    Golang

Ключевые слова

#golang

#typing

#duck

#static

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.