Qual é o papel principal do primitive Union e em que situações é utilizada?
sobes.tech IA
Resposta da IA
Em Go, não existe um primitive chamado Union propriamente dito, mas funções semelhantes desempenham o papel das interfaces e tipos usando switches de tipo. A ideia principal de uma union é a capacidade de armazenar o valor de um de vários tipos numa única variável. Em linguagens onde existe Union (por exemplo, C), isso economiza memória e permite trabalhar com diferentes tipos de dados no mesmo local.
Em Go, para esses propósitos, usam-se interfaces, por exemplo, interface{}, e depois, com assertions de tipo ou switches de tipo, determina-se o tipo específico em tempo de execução.
Exemplo de uso de uma interface para imitar uma union:
func process(value interface{}) {
switch v := value.(type) {
case int:
fmt.Println("valor int", v)
case string:
fmt.Println("valor string", v)
default:
fmt.Println("tipo desconhecido")
}
}
Utiliza-se esta construção quando é necessário processar dados de diferentes tipos numa mesma função ou estrutura, por exemplo, ao fazer parsing de JSON com diferentes tipos de valores possíveis.