Sobes.tech
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.