Sobes.tech
Junior — Middle

Aká je hlavná úloha primitive Union a v akých situáciách sa používa?

sobes.tech AI

Odpoveď od AI

V jazyku Go ne existuje primitívny typ Union ako taký, ale podobnú úlohu plnia rozhrania a typové switchy. Hlavná myšlienka unie je možnosť uložiť hodnotu jedného z viacerých typov do jednej premennej. V jazykoch, kde existuje Union (napríklad C), to šetrí pamäť a umožňuje pracovať s rôznymi typmi údajov na jednom mieste.

V Go sa na takéto účely používajú rozhrania, napríklad interface{}, a potom pomocou assertion typu alebo switchu typu určujeme konkrétny typ počas behu.

Príklad použitia rozhrania na napodobnenie unie:

func process(value interface{}) {
    switch v := value.(type) {
    case int:
        fmt.Println("hodnota int", v)
    case string:
        fmt.Println("hodnota string", v)
    default:
        fmt.Println("neznámy typ")
    }
}

Táto konštrukcia sa používa, keď je potrebné spracovať údaje rôznych typov v jednej funkcii alebo štruktúre, napríklad pri parsovaní JSON s rôznymi možnými typmi hodnôt.