Sobes.tech
Junior — Middle

Vysvetlite princíp fungovania konštrukcie type switch v jazyku Go a v čom sa líši od bežného switch-case.

sobes.tech AI

Odpoveď od AI

V jazyku Go sa konštrukcia type switch používa na určenie konkrétneho typu hodnoty rozhrania počas behu. Umožňuje vykonávať rôzne akcie v závislosti od typu, ku ktorému patrí premenná implementujúca rozhranie.

Príklad syntaxe:

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

Tu je x premenná typu rozhranie a v je premenná s konkrétnym typom v každom prípade.

Rozdiel od bežného switch-case:

  • Bežný switch porovnáva hodnotu výrazu s konštantami alebo výrazmi.
  • Type switch porovnáva typ hodnoty rozhrania, nie hodnotu samotnú.

Type switch je užitočný pri práci s rozhraniami, keď je potrebné vykonať rôzne akcie v závislosti od skutočného typu objektu uloženého v rozhraní.