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.