Sobes.tech
Junior — Middle

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.