我目前正在学习swift,我想知道为字典分配值和使用updateValue函数之间的区别。它们都会更改或添加一个字典,其中包含您输入的名称以及您传递给该名称的值。
var states = [ "La" : "Las Vegas", "Ca" : "California", "We" : "Whatever" ]
//manually assigning/changing a value
states["La"] = "Ive changed"
println(states["La"])
//using the updateValue function
states.updateValue("Ive changed again", forKey: "La")
println(states["La"])
他们都给了我相同的结果,问题是我是否正确思考,我只是想知道我是否应该使用第一个或第二个选项以及何时。
答案 0 :(得分:2)
只有一个区别,当您使用updateValue
更新字典时,它会更新/插入值并返回存储在密钥中的先前值。 (如果该密钥不存在则返回nil)
你可以使用它:
if let unwrappedPreviousValue = dictionary.updateValue("Midhun", forKey: "La")
{
println("Previous value: \(unwrappedPreviousValue)")
}
根据Swift Standard Library Reference:
<强> updateValue(_:forKey:)强>
插入或更新给定键的值并返回之前的值 该密钥的值(如果存在),或者如果之前的值不存在则为零 存在。
<强>声明强>
mutating func updateValue(value: Value, forKey key: Key) -> Value?
<强>讨论强>
使用此方法插入或更新给定键的值,作为 下标的替代方案。此方法返回type的值 值? - 一个可选的字典值的基础类型