Jaki jest najlepszy sposób na scalenie par klucz-wartość z jednej mapy w drugą w Go? Używam prostej pętli, ale zastanawiałem się, czy istnieje coś takiego jak array_merge
PHP, którego można użyć.
bigmap := map[string]string{"a":"a", "b":"b", "c":"c"}
smallmap := map[string]string{"d":"d"}
for k, v := range smallmap {
bigmap[k] = v
}
2 odpowiedzi
Nie, nie ma.
Nie byłoby to tak przydatne, ponieważ napisany przez Ciebie przejrzysty kod jest wystarczająco krótki i ma tę zaletę, że nie ukrywa implementacji.
Możesz wykonać własną funkcję, jeśli jej potrzebujesz:
func addmap(a map[string]string, b map[string]string) {
for k,v := range b {
a[k] = v
}
}
addmap(bigmap, smallmap)
Ale ponieważ Go nie ma generyków, musiałbyś stworzyć inną funkcję dla każdego konkretnego typu mapy, którego chcesz użyć.
AFAIK, nie ma do tego funkcji wbudowanej ani bibliotecznej. I myślę, że twój kod jest tak dobry, jak to tylko możliwe.
Podobne pytania
Nowe pytania
go
Go to język programowania typu open source. Jest zapisywany statycznie, ze składnią luźno pochodzącą z języka C, dodającą automatyczne zarządzanie pamięcią, bezpieczeństwo typów, niektóre możliwości dynamicznego pisania, dodatkowe typy wbudowane, takie jak tablice o zmiennej długości (zwane odcinkami) i mapy klucz-wartość oraz duża biblioteka standardowa.