Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: compile-time, runtime, type assertion, interface

Интерфейс проверяется в compile-time или runtime?

Проверяет понимание, когда именно Go гарантирует соответствие типа интерфейсу и когда проверяет динамические приведения.

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

Статическая проверка соответствия интерфейсу методам типа происходит в compile-time при явной или неявной реализации. Однако runtime происходит проверка при использовании приведения через .(Type), где может быть panic или ошибка, если тип не тот.

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

Compile-time:

  • Go компилирует и убеждается, что тип имеет все методы интерфейса, когда вы пишете var x SomeInterface = y.

Runtime:

  • При динамическом приведении v, ok := iface.(ConcreteType) или v := iface.(ConcreteType) Go проверяет фактический тип и может вернуть ok=false или panic.

Type switch:

  • Тоже работает на runtime, проверяя iface.(type).

Вывод:

Статическая безопасность обеспечена на этапе компиляции, динамические операции проверяются во время выполнения.

  • Аватар

    Golang Guru

    Maxim Lukyanov

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

Уровень

  • Рейтинг:

    3

  • Сложность:

    5

Навыки

  • Golang

    Golang

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

#compile-time

#runtime

#type assertion

#interface

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

  • Аватар

    Golang Guru

    Maxim Lukyanov

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