Sobes.tech
Junior — Middle

Vysvětlete princip fungování konstrukce type switch v jazyce Go a v čem se liší od běžného switch-case.

sobes.tech AI

Odpověď od AI

V jazyce Go se konstrukce type switch používá k určení konkrétního typu hodnoty rozhraní za běhu. Umožňuje provádět různé akce v závislosti na typu, ke kterému patří proměnná implementující rozhraní.

Příklad syntaxe:

switch v := x.(type) {
case int:
    fmt.Println("int", v)
case string:
    fmt.Println("string", v)
default:
    fmt.Println("jiný typ")
}

Zde je x proměnná typu rozhraní a v je proměnná s konkrétním typem v každém případu.

Rozdíl od běžného switch-case:

  • Běžný switch porovnává hodnotu výrazu s konstantami nebo výrazy.
  • Type switch porovnává typ hodnoty rozhraní, nikoliv samotnou hodnotu.

Type switch je užitečný při práci s rozhraními, když je třeba provádět různé akce v závislosti na skutečném typu objektu uloženého v rozhraní.