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("Original Dictionaries:") print("Dictionary 1: ", nDict) print("Dictionary 2: ", mDict) // Merging two dictionaries let mergeDict = nDict.merging(mDict) { (_, new) in new } print("\nMerged Dictionary:", mergeDict)
输出
Original Dictionaries: Dictionary 1: ["x": 234, "z": 922, "y": 221] Dictionary 2: ["p": 12, "q": 182, "r": 2781] Merged Dictionary: ["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("Original Dictionaries:") print("Dictionary 1: ", nDict) print("Dictionary 2: ", mDict) // Merging two dictionaries let mergeDict = nDict.merging(mDict) { (current, new) in new } print("\nMerged Dictionary:", mergeDict)
输出
Original Dictionaries: Dictionary 1: [1: "dd", 2: "pp", 3: "ww"] Dictionary 2: [2: "tt", 1: "oo", 8: "ee"] Merged Dictionary: [8: "ee", 3: "ww", 2: "tt", 1: "oo"]
结论
因此,这就是我们如何使用merging()函数合并两个字典的方法。此函数接受两个参数并返回一个新字典,其中包含来自两个给定字典的键值对。它适用于包含唯一键值对的字典以及包含一些重复键的字典。