Sobes.tech
Back to questions
Junior — Middle
91

Объясните принцип работы конструкции type switch в языке Go и в чем ее отличие от обычного switch-case.

Companies where asked
Digital Spirit

Answer from AI

sobes.tech 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 — переменная с конкретным типом внутри каждого case.

Отличие от обычного switch-case:

  • Обычный switch сравнивает значение выражения с константами или выражениями.
  • Type switch сравнивает тип значения интерфейса, а не само значение.

Type switch полезен для работы с интерфейсами, когда нужно выполнить разные действия в зависимости от реального типа объекта, хранящегося в интерфейсе.