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()函式合併兩個字典的方法。此函式接受兩個引數並返回一個新字典,其中包含來自兩個給定字典的鍵值對。它適用於包含唯一鍵值對的字典以及包含一些重複鍵的字典。