如何在 Swift 中向字典新增元素?
Swift 有多種方法可以向字典新增元素。
我們將使用以下方法在 Swift 語言中向字典新增元素:
使用 updateValue() 方法新增元素
使用下標語法新增元素。
使用 merging() 方法新增元素。
使用 updateValue() 方法
Swift 中的 updateValue( :forKey:) 方法用於更新現有鍵的值或向現有字典新增新的鍵值對。如果鍵之前不存在於字典中,則該方法將返回 nil 而不是鍵的先前值,以下是一個示例:
示例
import Foundation var userInfo: [String: Any] = ["firstName": "Alex", "school": "St. Primary School", "score": 8.8, "age": 16] print("Original User Info: \(userInfo)") // Adding new key-value pairs userInfo.updateValue("USA", forKey: "country") userInfo.updateValue("Murphy", forKey: "lastName") userInfo.updateValue("Martin Murphy", forKey: "fatherName") print("Updated User Info: \(userInfo)")
輸出
Original User Info: ["firstName": "Alex", "age": 16, "school": "St. Primary School", "score": 8.8] Updated User Info: ["fatherName": "Martin Murphy", "age": 16, "score": 8.8, "lastName": "Murphy", "firstName": "Alex", "school": "St. Primary School", "country": "USA"]
使用下標語法
或者,您可以使用下標語法為新的或現有的鍵賦值。以下是一個示例。
示例
import Foundation var userInfo: [String: Any] = ["firstName": "Alex", "school": "St. Primary School", "score": 8.8, "age": 16] print("Original User Info: \(userInfo)") // Adding new key-value pairs userInfo["country"] = "USA" userInfo["lastName"] = "Murphy" userInfo["fatherName"] = "Martin Murphy" print("Updated User Info: \(userInfo)")
輸出
Original User Info: ["age": 16, "school": "St. Primary School", "firstName": "Alex", "score": 8.8] Updated User Info: ["firstName": "Alex", "fatherName": "Martin Murphy", "country": "USA", "score": 8.8, "age": 16, "school": "St. Primary School", "lastName": "Murphy"]
使用 merging() 方法
您還可以使用 Dictionary 的 .merging(_:uniquingKeysWith:) 方法向字典新增元素。
merging(_:uniquingKeysWith:) 是 Swift 中 Dictionary 型別上的一個方法,它允許您將一個字典的內容合併到另一個字典中,並指定如何處理重複的鍵。
該方法接受兩個引數
第一個引數是要合併到當前字典中的字典。
第二個引數是一個閉包,它接受同一個鍵的兩個值並返回您想要保留的值。
示例
以下是一個演示如何使用 merging(_:uniquingKeysWith:) 方法的示例:
import Foundation var userInfo: [String: Any] = ["firstName": "Alex", "school": "St. Primary School", "score": 8.8, "age": 16] print("Original User Info: \(userInfo)") // creating a new dictionary with other info let otherInfo: [String: Any] = ["country": "USA", "lastName": "Murphy", "fatherName": "Martin Murphy", "pincode": 6783456] userInfo = userInfo.merging(otherInfo, uniquingKeysWith: { current, _ in return current }) print("Updated User Info: \(userInfo)")
輸出
Original User Info: ["school": "St. Primary School", "score": 8.8, "age": 16, "firstName": "Alex"] Updated User Info: ["firstName": "Alex", "pincode": 6783456, "country": "USA", "lastName": "Murphy", "school": "St. Primary School", "age": 16, "fatherName": "Martin Murphy", "score": 8.8]
如果鍵已存在,它將把 otherInfo 與 userInfo 合併並使用當前值。為了處理重複的鍵,您可以透過其他方式使用 merging( :uniquingKeysWith:) 函式,例如保留當前字典的值或合併值等。
注意 - 此方法不會修改原始字典,它只返回一個新字典
結論
有不同的方法,例如 updateValue()、merging() 和使用下標語法。所有方法都可以在不同的情況下使用。
大多數情況下,我們使用下標語法向字典新增元素。在 Swift 中,字典非常強大,可以處理重複鍵。為了管理重複鍵,您可以使用上述示例中提供的方法之一。