Swift 程序合并两个字典
为了合并两个字典的内容,Swift 提供了一个名为 merging(_:uniqueKeysWith:) 的预定义函数。该函数通过合并两个字典的元素来创建一个新的字典。它还使用组合闭包来检查值中是否存在重复的键。
语法
func merging(otherDict){comClosure}
此函数接受两个参数,它们是:
OtherDict − 它是一个需要合并的字典。
comClosure − 它是一个闭包,它接受重复键的当前值和新值,然后返回输出字典所需的值。这是一个可选参数,如果您不想自定义合并函数,可以删除此参数。
算法
步骤 1 - 创建两个包含键值对的字典。
步骤 2 - 打印原始字典。
步骤 3 - 现在使用 merging() 函数合并给定字典的元素,并将结果存储在新字典中。
步骤 4 - 打印结果字典。
示例 1
在下面的 Swift 程序中,我们将合并两个字典。因此,我们首先创建两个相同数据类型的字典。然后使用 merging() 函数合并它们。在这个函数中,我们传递了两个参数:一个是第二个字典,另一个是闭包。闭包有两个参数"_"和"new"。其中"_"表示通配符,表示对于两个字典中都存在的键,nDict 中已经存在的值,我们在闭包中忽略它;new 参数表示"mDict"中对于两个字典中都存在的键,返回该值以覆盖 nDict 中的值。最后打印生成的字典。
import Foundation
import Glibc
let nDict = ["x": 234, "y": 221, "z": 922]
let mDict = ["p": 12, "q": 182, "r": 2781]
print("原始字典:")
print("字典 1: ", nDict)
print("字典 2: ", mDict)
// 合并两个字典
let mergeDict = nDict.merging(mDict) { (_, new) in new }
print("\n合并后的字典:", mergeDict)
输出
原始字典: 字典 1:["x": 234, "z": 922, "y": 221] 字典 2:["p": 12, "q": 182, "r": 2781] 合并后的字典:["z": 922, "y": 221, "p": 12, "x": 234, "q": 182, "r": 2781]
示例 2
在下面的 Swift 程序中,我们将合并两个字典。因此,我们将创建两个相同数据类型的字典。然后使用 merging() 函数将它们合并。这里,两个字典都有一些重复的键。因此,在 merging() 函数中,我们传递了两个参数 mDict 和闭包。在闭包中,我们传递了两个参数 current 和 new,它将返回 new,这意味着对于同时存在于 nDict 和 mDict 中的任何键,它们在 mDict 中的值将覆盖 nDict 中的值。最后显示合并后的字典。
import Foundation
import Glibc
let nDict = [1: "dd", 2: "pp", 3: "ww"]
let mDict = [1: "oo", 8: "ee", 2: "tt"]
print("原始字典:")
print("字典 1: ", nDict)
print("字典 2: ", mDict)
// 合并两个字典
let mergeDict = nDict.merging(mDict) { (current, new) in new }
print("\n合并后的字典:", mergeDict)
输出
原始字典: 字典 1:[1: "dd", 2: "pp", 3: "ww"] 字典 2:[2: "tt", 1: "oo", 8: "ee"] 合并后的字典:[8: "ee", 3: "ww", 2: "tt", 1: "oo"]
结论
这就是我们合并两个字典的方法使用 merging() 函数合并字典。此函数接受两个参数,并返回一个包含两个给定字典的键值对的新字典。它适用于包含唯一键值对的字典,以及包含一些重复键的字典。