Junior — Middle
Обяснете принципа на работа на конструкцията type switch в езика Go и какво я отличава от обикновения switch-case.
sobes.tech AI
Отговор от AI
В езика Go конструкцията type switch се използва за определяне на конкретен тип на интерфейсна стойност по време на изпълнение. Тя позволява да се изпълняват различни действия в зависимост от типа, към който принадлежи променливата, реализираща интерфейса.
Пример за синтаксис:
switch v := x.(type) {
case int:
fmt.Println("int", v)
case string:
fmt.Println("string", v)
default:
fmt.Println("друг тип")
}
Тук, x е променлива от тип интерфейс, а v е променлива с конкретен тип във всеки случай.
Разлика от обикновения switch-case:
- Обикновеният switch сравнява стойността на израза с константи или изрази.
- Type switch сравнява типа на стойността на интерфейса, а не самата стойност.
Type switch е полезен при работа с интерфейси, когато трябва да се изпълнят различни действия в зависимост от реалния тип на обекта, съхраняван в интерфейса.