Ei aí … Eu tenho um problema com esses caras …
Não há diferença no resultado dessas duas operações.
Você pode usar o operador mais: assert [ a: 1, b: 1 ] + [ a: 0 ] == [ a: 0, b: 1 ]
Ou deslocamento para a esquerda: assert [ a: 1, b: 1 ] << [ a: 0 ] == [ a: 0, b: 1 ]
E o resultado seria o mesmo.
Mas…
A diferença é que << adiciona o mapa direito ao mapa esquerdo e, quando você usa + , Groovy constrói um novo mapa com base no mapa esquerdo e adiciona o mapa direito a ele.
Portanto, quando você precisar alterar uma instância de Mapa à esquerda – use o operador << ,
mas quando precisar criar uma nova instância de Mapa com base em dois ou mais mapas – use o operador + .