Hey there... I've got a problem with these guys...
There is no defference in the result of these two operations.
You can use plus operator:
assert [ a: 1, b: 1 ] + [ a: 0 ] == [ a: 0, b: 1 ]
Or left shift:
assert [ a: 1, b: 1 ] << [ a: 0 ] == [ a: 0, b: 1 ]
And the result would be all the same.
The difference is that << adds the right map into the left map, and when you use +, Groovy constructs a new Map based on the left map, and adds the right map into it.
So when you need to change a left Map instance - use << operator,
but when you need to create a new Map instance based on two or more maps - use + operator.