2012-08-29 11 views
8

¿Cuál es la mejor manera de fusionar pares clave-valor de un mapa a otro en Go? Estoy usando un bucle simple, pero me preguntaba si hay algo como PHP array_merge que podría ser utilizado.Fusionar mapas en Go

bigmap := map[string]string{"a":"a", "b":"b", "c":"c"} 
smallmap := map[string]string{"d":"d"} 

for k, v := range smallmap { 
    bigmap[k] = v 
} 

Respuesta

5

No, no lo hay.

Esto no sería tan útil ya que el código claro que escribió es lo suficientemente breve y tiene la ventaja de no ocultar la implementación.

Usted puede hacer su propia función de si la necesita:

func addmap(a map[string]string, b map[string]string) { 
    for k,v := range b { 
     a[k] = v 
    } 
} 

addmap(bigmap, smallmap) 

Pero como Go no tiene los genéricos, que tendría que hacer una función diferente para cada tipo de mapa concreto que desea utilizar.

0

AFAIK, no hay una función incorporada ni de biblioteca para eso. Y creo que tu código es tan bueno como puede ser.