为什么dictioniaries有.updateValue()?

时间:2017-04-20 09:40:45

标签: swift

我们说我们有一个词典:

var myDict = [1: "firstValue", 2: "secondValue"]

在我看来,想要用键1改变值

myDict.updateValue("diffFirstValue", forKey: 1)

具有与

完全相同的功能
myDict[1] = "diffFirstValue"

那么为什么字典存在.updateValue()?

1 个答案:

答案 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")
}

它打印:“新增值