Sobes.tech
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 е полезен при работа с интерфейси, когато трябва да се изпълнят различни действия в зависимост от реалния тип на обекта, съхраняван в интерфейса.