Mi a primitív Union fő szerepe, és milyen helyzetekben használják?
sobes.tech MI
Válasz az MI-től
Go-ban nincs olyan primitív típus, mint a Union, de hasonló szerepet töltenek be az interfészek és a típus switch-ek használata. A union fő ötlete, hogy egy változóban tárolhatunk egy több típusból származó értéket. Olyan nyelvekben, ahol van Union (pl. C), ez memória megtakarítást eredményez, és lehetővé teszi, hogy különböző adat típusokkal dolgozzunk ugyanazon a helyen.
Go-ban ilyen célokra az interfészeket használják, például interface{}, majd típus assertion vagy típus switch segítségével határozzuk meg a konkrét típust futásidőben.
Példa egy interfész használatára a union imitálására:
func process(value interface{}) {
switch v := value.(type) {
case int:
fmt.Println("int érték", v)
case string:
fmt.Println("string érték", v)
default:
fmt.Println("ismeretlen típus")
}
}
Ezt a konstrukciót akkor használják, amikor különböző típusú adatok feldolgozására van szükség ugyanabban a függvényben vagy szerkezetben, például JSON elemzésekor, különböző értéktípusokkal.