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

merging(_:uniquingKeysWith:)

Creates a dictionary by merging key-value pairs in a sequence into the dictionary, using a combining closure to determine the value for duplicate keys. ある辞書を作成します、あるシーケンスの中のキー値ペアをその辞書に合併させることによってです、結合用のクロージャを使って重複キーに対する値を決定します。

Declaration 宣言

func merging<S>(_ other: S, uniquingKeysWith combine: (Value, Value) throws -> Value) rethrows -> [Key : Value] 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. あるクロージャで、何らかの重複キーに対する現在および新しい値それぞれをとるもの。このクロージャは、最終的な辞書に対して望む値を返します。

Return Value 戻り値

A new dictionary with the combined keys and values of this dictionary and other. この辞書とotherのキーと値を組み合わせた新しい辞書。

Discussion 解説

Use the combine closure to select a value to use in the returned 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: この例は、あらゆる重複キーに対して現在および新規の値を選択する方法を示します:


let dictionary = ["a": 1, "b": 2]
let newKeyValues = zip(["a", "b"], [3, 4])


let keepingCurrent = dictionary.merging(newKeyValues) { (current, _) in current }
// ["b": 2, "a": 1]
let replacingCurrent = dictionary.merging(newKeyValues) { (_, new) in new }
// ["b": 4, "a": 3]

See Also 参照

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