¿Cómo copiar un mapa?
Estoy tratando de copiar el contenido de un mapa (amap
) dentro de otro (aSuperMap
) y luego borraramap
para que pueda tomar nuevos valores en la próxima iteración / ciclo. El problema es que no puedes borrar el mapasin borrar su referencia en el supermapa también. Aquí hay un pseudocódigo.
for something := range fruits{
aMap := make(map[string]aStruct)
aSuperMap := make(map[string]map[string]aStruct)
for x := range something{
aMap[x] = aData
aSuperMap[y] = aMap
delete(aMap, x)
}
//save aSuperMap
saveASuperMap(something)
}
También probé algunas cosas dinámicas, pero obviamente arroja un error (no se puede asignar a cero)
aSuperMap[y][x] = aData
La pregunta es ¿cómo puedo crear un mapa asociativo? En PHP simplemente uso aSuperMap [y] [x] = aData. Parece que Golang no tiene ningún método obvio. Si eliminodelete(aMap, x)
su referencia del súper mapa también se elimina. Si no lo elimino, el supermapa termina con datos duplicados. Básicamente en cada bucle se poneaMap
con el nuevo valor más todos los viejos valores.