我们说我们有一个词典:
var myDict = [1: "firstValue", 2: "secondValue"]
在我看来,想要用键1改变值
myDict.updateValue("diffFirstValue", forKey: 1)
具有与
完全相同的功能myDict[1] = "diffFirstValue"
那么为什么字典存在.updateValue()?
答案 0 :(得分:2)
根据official Apple reference,它返回被替换的值,如果添加了新值,则返回nil:
当您需要知道新值是否取代现有密钥的值时,请使用此方法代替基于密钥的下标
替换值
var dictionary = ["A": 1, "B": 2]
if let oldValue = dictionary.updateValue(100, forKey: "A") {
print("Old value: \(oldValue)")
} else {
print("New value added")
}
它打印:“旧值:1 ”
添加值
var dictionary = ["A": 1, "B": 2]
if let oldValue = dictionary.updateValue(100, forKey: "C") {
print("Old value: \(oldValue)")
} else {
print("New value added")
}
它打印:“新增值”