Проверяет знание механизма проверки и выбора поведения в зависимости от динамического типа значения интерфейсного типа.
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{}.
Для реализации поведения, зависящего от конкретного типа.