Junior — Middle
É possível obter o endereço de um elemento específico armazenado numa tabela associativa (Map)?
sobes.tech IA
Resposta da IA
No Go, não é possível obter diretamente o endereço de um elemento específico armazenado em um map. Isto deve-se ao facto de que os elementos do mapa podem mover-se na memória durante alterações, e o compilador não permite obter o endereço do valor através de indexação para evitar erros.
Por exemplo, o seguinte código não compilará:
m := map[string]int{"a": 1}
p := &m["a"] // erro de compilação: não é possível obter o endereço de m["a"]
Se precisar trabalhar com o endereço do valor, pode armazenar ponteiros ou estruturas no map e obter o endereço deles:
m := map[string]*int{"a": new(int)}
*m["a"] = 42
Ou copiar o valor do map para uma variável e obter o endereço dessa variável.