<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.10.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Swift",
  "identifier" : "/documentation/Swift/Dictionary/merge(_:uniquingKeysWith:)-84ffe",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Swift"
    ],
    "preciseIdentifier" : "s:SD5merge_16uniquingKeysWithyqd__n_q_q__q_tqd_0_YKXEtqd_0_YKSTRd__s5ErrorRd_0_x_q_t7ElementRtd__r0_lF"
  },
  "title" : "merge(_:uniquingKeysWith:)"
}
-->

# merge(_:uniquingKeysWith:)

Merges the key-value pairs in the given sequence into the dictionary,
using a combining closure to determine the value for any duplicate keys.

```
mutating func merge<S, E>(_ other: S, uniquingKeysWith combine: (Value, Value) throws(E) -> Value) throws(E) where S : Sequence, E : Error, S.Element == (Key, Value)
```

## Parameters

`other`

A sequence of key-value pairs.

`combine`

A closure that takes the current and new values for any
duplicate keys. The closure returns the desired value for the final
dictionary.

## Discussion

Use the `combine` closure to select a value to use in the updated
dictionary, or to combine existing and new values. As the key-value
pairs are merged with the dictionary, the `combine` closure is called
with the current and new values for any duplicate keys that are
encountered.

This example shows how to choose the current or new values for any
duplicate keys:

```
var dictionary = ["a": 1, "b": 2]

// Keeping existing value for key "a":
dictionary.merge(zip(["a", "c"], [3, 4])) { (current, _) in current }
// ["b": 2, "a": 1, "c": 4]

// Taking the new value for key "a":
dictionary.merge(zip(["a", "d"], [5, 6])) { (_, new) in new }
// ["b": 2, "a": 5, "c": 4, "d": 6]
```

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)