Есть ли у Groovy способ объединить 2 карты?


85

Первая карта - это опции по умолчанию [a: true, b: false]. Вторая карта - параметры, переданные пользователем [a:false]. Есть ли в Groovy метод слияния карт для получения[a: false, b:false] ?

Реализовать это в Groovy - не проблема. Я спрашиваю о методе из коробки

Ответы:


176

Вы можете использовать плюс:

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

Или сдвиг влево:

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

Разница в том, что << правая карта добавляется к левой . Когда вы используете +, он создает новую карту на основе LHS и добавляет в нее правую карту.


Также, возможно, стоит отметить, что, когда вы можете использовать +, вы также можете использовать +=:def m1 =[ a: true, b: false ]; m1 += [ a: false ] ; println (m1 == [ a: false, b: false ])
Patrice M.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.