Generic Instance Method 総称体インスタンスメソッド

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. 与えられたシーケンスの中のキー値ペアをこの辞書へと結合します、結合用のクロージャを使って何らかの重複キーに対して値を決定します。

Declaration 宣言

mutating func merge<S>(_ other: S, uniquingKeysWith combine: (Value, Value) throws -> Value) rethrows where S : Sequence, 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. combineクロージャを使ってある値を選択することで更新された辞書において使ってください、または既存のものと新しい値を結合してください。それらキー値ペアが辞書に結合されるときに、出くわした全ての重複キーに対してその現在および新規の値とともにcombineクロージャが呼び出されます。

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]

See Also 参照

Adding Keys and Values キーと値を追加する