當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift Dictionary merging(_:uniquingKeysWith:)用法及代碼示例


用法一

實例方法

merging(_:uniquingKeysWith:)

通過將給定字典合並到此字典中來創建字典,使用組合閉包來確定重複鍵的值。

聲明

func merging(
    _ other: [Key : Value],
    uniquingKeysWith combine: (Value, Value) throws -> Value
) rethrows -> [Key : Value]
Key 符合 Hashable 時可用。

返回值

包含此字典和 other 的組合鍵和值的新字典。

參數

other

要合並的字典。

combine

為任何重複鍵獲取當前值和新值的閉包。閉包返回最終字典所需的值。

詳述

使用 combine 閉包選擇要在返回字典中使用的值,或組合現有值和新值。隨著other 中的鍵值對與此字典合並,combine 閉包會調用遇到的任何重複鍵的當前值和新值。

此示例顯示如何為任何重複鍵選擇當前值或新值:


let dictionary = ["a": 1, "b": 2]
let otherDictionary = ["a": 3, "b": 4]


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

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

用法二

實例方法

merging(_:uniquingKeysWith:)

通過將序列中的鍵值對合並到字典中來創建字典,使用組合閉包來確定重複鍵的值。

聲明

func merging<S>(
    _ other: S,
    uniquingKeysWith combine: (Value, Value) throws -> Value) rethrows -> [Key : Value] where S : Sequence, S.Element == (Key, Value
)
Key 符合 Hashable 時可用。

返回值

包含此字典和 other 的組合鍵和值的新字典。

參數

other

一係列鍵值對。

combine

為任何重複鍵獲取當前值和新值的閉包。閉包返回最終字典所需的值。

詳述

使用 combine 閉包選擇要在返回字典中使用的值,或組合現有值和新值。當鍵值對與字典合並時,combine 閉包會調用遇到的任何重複鍵的當前值和新值。

此示例顯示如何為任何重複鍵選擇當前值或新值:


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]

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Dictionary merging(_:uniquingKeysWith:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。