Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: type switch, interface, dynamic type, type assertion

Что такое type switch в Go?

Проверяет знание механизма проверки и выбора поведения в зависимости от динамического типа значения интерфейсного типа.

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

ype switch — это специальный switch для интерфейсов, который проверяет динамический тип хранящегося значения. В каждом case можно указать один или несколько типов, и тело выполнится, если значение соответствует одному из них. Это удобно для безопасного приведения к конкретному типу внутри блока.

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

Синтаксис:

switch v := x.(type) {
case int:
    	// v имеет тип int
case string, bool:
    	// v может быть string или bool
default:
    	// любой другой тип
}

Что делает:

  • Берёт переменную интерфейсного типа x и в каждом case сравнивает её фактический тип (dynamic type) с указанным.

  • После успешного сравнения v автоматически имеет тот конкретный тип.

Особенности:

  • Можно перечислять несколько типов в одном case.

  • default срабатывает, если ни один case не подошёл.

Когда использовать:

  • При обработке разнородных данных, пришедших как interface{}.

  • Для реализации поведения, зависящего от конкретного типа.

  • Аватар

    Golang Guru

    Maxim Lukyanov

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

Уровень

  • Рейтинг:

    1

  • Сложность:

    4

Навыки

  • Golang

    Golang

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

#type switch

#interface

#dynamic type

#type assertion

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

  • Аватар

    Golang Guru

    Maxim Lukyanov

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