Updates the value stored in the dictionary for the given key, or adds a new key-value pair if the key does not exist.
SDK
- Xcode 10.2+
Framework
- Swift Standard Library
Declaration
@discardableResult mutating func updateValue(_ value: Value, forKey key: Key) -> Value?
Parameters
valueThe new value to add to the dictionary.
keyThe key to associate with
value. Ifkeyalready exists in the dictionary,valuereplaces the existing associated value. Ifkeyisn’t already a key of the dictionary, the(key, value)pair is added.
Return Value
The value that was replaced, or nil if a new key-value pair was added.
Discussion
Use this method instead of key-based subscripting when you need to know whether the new value supplants the value of an existing key. If the value of an existing key is updated, update returns the original value.
var hues = ["Heliotrope": 296, "Coral": 16, "Aquamarine": 156]
if let oldValue = hues.updateValue(18, forKey: "Coral") {
print("The old value of \(oldValue) was replaced with a new one.")
}
// Prints "The old value of 16 was replaced with a new one."
If the given key is not present in the dictionary, this method adds the key-value pair and returns nil.
if let oldValue = hues.updateValue(330, forKey: "Cerise") {
print("The old value of \(oldValue) was replaced with a new one.")
} else {
print("No value was found in the dictionary for that key.")
}
// Prints "No value was found in the dictionary for that key."