正しくマップ操作シンプルな地図操作(特に:マップの追加)私は問題を抱えている
def map1 = [ name: 'John']
def map2 = [ name: 'Jane']
assert [ name: 'Jane'] == map1 + map2
私はあなたが行うと
[[ name: 'Jane'], [ name: 'John']]
正しくマップ操作シンプルな地図操作(特に:マップの追加)私は問題を抱えている
def map1 = [ name: 'John']
def map2 = [ name: 'Jane']
assert [ name: 'Jane'] == map1 + map2
私はあなたが行うと
[[ name: 'Jane'], [ name: 'John']]
のような結果のマップを取得したいと思います理解します:
map1 + map2
マップを結合し、右側のマップは、共通のキーを上書きしますE左側のマップ..
はそう:あなたが欲しい
[ a:1, b:2 ] + [ b:3, c:4 ] == [ a:1, b:3, c:4 ]
は、マップのリストです。 1つのオプションは次のとおりです。
リストにMAP1をラップして、このリストにMAP2を追加[ map1 ] + map2
assert [[ name: 'John'], [ name: 'Jane']] == [ map1 ] + map2
"地図のリスト"を修正していただきありがとうございます。私はあなたの説明を理解していますが、この例では一貫性のない結果が表示されているように、この例では混乱があります: ' –
' def mapOne = [[id:1、firstName: 'Jimmy]]、[id:2、firstName:' Robert '] ] \t DEF mapTwo = [ID:1とLastName: 'ページ'] \t DEF mapThree = [ID:2とLastName 'プラント'] \t DEF mapFour = [ID:1とLastName: 'ページ'] [ID:1、firstName: 'Jimmy']、[id:2、firstName: 'Robert']、[id:1、lastName: 'Page']、[ id:2、lastName: 'Plant']、[id:1、lastName: 'Page']] \tアサートmapThree + mapFour == [id:1、lastName: 'Page'] ' –
が最初にアサートされたとき、 'mapOne'はすでにマップのリストなので、他のマップをリストに追加するだけです。 2番目のアサートでは、 'mapThree'と' mapFour'はマップなので、私の答えで記述するキーの上書きが発生し、 'mapFour'で終わるだけです –
'[[名: 'ジェーン']、[名: 'ジョン']]'地図のリストではなく、地図自体ではありません。 –