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í.