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

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

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


person fedor.belov    schedule 10.11.2012    source источник


Ответы (1)


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

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

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

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

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

person tim_yates    schedule 10.11.2012
comment
Также, возможно, стоит отметить, что когда вы можете использовать +, вы также можете использовать +=: def m1 =[ a: true, b: false ]; m1 += [ a: false ] ; println (m1 == [ a: false, b: false ]) - person Patrice M.; 16.11.2020