如何在 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 中,字典非常强大,可以处理重复键。为了管理重复键,您可以使用上述示例中提供的方法之一。