Czy Groovy ma metodę łączenia 2 map?

85

Pierwsza mapa to opcje domyślne [a: true, b: false]. Druga mapa - opcje przekazywane przez użytkownika [a:false]. Czy Groovy ma metodę scalania map [a: false, b:false]?

Wdrożenie go w Groovy nie stanowi problemu. Pytam o metodę po wyjęciu z pudełka

fedor.belov
źródło

Odpowiedzi:

176

Możesz użyć plus:

assert [ a: true, b: false ] + [ a: false ] == [ a: false, b: false ]

Lub przesunięcie w lewo:

assert [ a: true, b: false ] << [ a: false ] == [ a: false, b: false ] 

Różnica polega na tym, że << dodaje mapę po prawej stronie do mapy po lewej stronie . Kiedy używasz +, tworzy nową mapę w oparciu o LHS i dodaje do niej mapę po prawej stronie

tim_yates
źródło
Warto również zauważyć, że kiedy możesz użyć +, możesz również użyć +=:def m1 =[ a: true, b: false ]; m1 += [ a: false ] ; println (m1 == [ a: false, b: false ])
Patrice M.