検証環境:
Xcode 11.1
Swift 5.1
Dictionary の merge
またはmerging
メソッドを使う。
// merging do { let a = ["a": 100] let b = ["a": 200, "b": 300] // 重複したKeyは a を優先させる場合 let result1 = a.merging(b) { (a, b) in a } print(result1) // ["a": 100, "b": 300] // 重複したKeyは b を優先させる場合 let result2 = a.merging(b) { (a, b) in b } print(result2) // ["a": 200, "b": 300] } // merge do { var a = ["a": 100] let b = ["a": 200, "b": 300] a.merge(b) { (a, b) in a } print(a) // ["a": 100, "b": 300] } // + オペレータを使う do { // 重複したKeyはValueを合計する let a = ["a": 100] let b = ["a": 200, "b": 300] let result = a.merging(b, uniquingKeysWith: +) print(result) // ["b": 300, "a": 300] }
merge(_:uniquingKeysWith:) - Dictionary | Apple Developer Documentation
merging(_:uniquingKeysWith:) - Dictionary | Apple Developer Documentation