Junior — Middle
Mis on primitive Unioni peamine roll ja millistes olukordades seda kasutatakse?
sobes.tech AI
Vastus AI-lt
Go keeles ei ole sellist primitiivi nagu Union, kuid sarnased rollid täidavad liideste ja type switch-ide kasutamine. Unioni põhitees on võimalus hoida ühe mitmest tüübist väärtust ühes muutujas. Keeltes, kus on Union (näiteks C), see säästab mälu ja võimaldab töötada erinevate andmetüüpidega samas kohas.
Go keeles kasutatakse sellistel eesmärkidel liideseid, näiteks interface{}, ning seejärel, kasutades type assertion või type switch-i, määratakse konkreetne tüüp jooksvalt.
Näide liidese kasutamisest unioni imiteerimiseks:
func process(value interface{}) {
switch v := value.(type) {
case int:
fmt.Println("int väärtus", v)
case string:
fmt.Println("string väärtus", v)
default:
fmt.Println("tüüp teadmata")
}
}
Seda konstruktsiooni kasutatakse, kui on vaja töödelda erinevat tüüpi andmeid samas funktsioonis või struktuuris, näiteks JSON-i analüüsimisel erinevate võimalike väärtusetüüpidega.