Sobes.tech
Junior — Middle

Koja je osnovna uloga primitive Union i u kojim situacijama se koristi?

sobes.tech АИ

Одговор од АИ

U Go nema primitivni tip Union kao takav, ali sličnu ulogu obavljaju interfejsi i tipovi pomoću switch-ova tipova. Osnovna ideja unije je mogućnost skladištenja vrednosti jednog od više tipova u jednoj promenljivoj. U jezicima gde postoji Union (npr. C), to štedi memoriju i omogućava rad sa različitim tipovima podataka na istom mestu.

U Go, za takve svrhe koriste se interfejsi, na primer interface{}, a zatim pomoću assertion tipa ili switch-a tipa određuje se konkretan tip u vreme izvršenja.

Primer korišćenja interfejsa za imitaciju unije:

func process(value interface{}) {
    switch v := value.(type) {
    case int:
        fmt.Println("int vrednost", v)
    case string:
        fmt.Println("string vrednost", v)
    default:
        fmt.Println("nepoznat tip")
    }
}

Ova konstrukcija se koristi kada je potrebno obraditi podatke različitih tipova u istoj funkciji ili strukturi, na primer, pri parsiranju JSON-a sa različitim mogućim tipovima vrednosti.