Ответ
Type switch в Go позволяет проверять динамический тип интерфейса. Это разновидность switch, где каждый case проверяет соответствие конкретному типу.
func checkType(x interface{}) {
switch v := x.(type) {
case int:
fmt.Printf("Integer: %vn", v)
case string:
fmt.Printf("String: %vn", v)
default:
fmt.Printf("Unknown type: %Tn", v)
}
}
Особенности:
- Использует синтаксис
x.(type)(только в switch) - Переменная
vполучает значение и конкретный тип для каждого case - Можно использовать для любого интерфейса
- Порядок case важен - выполняется первый подходящий
defaultобрабатывает все неподходящие случаи