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.