Instance Method インスタンスメソッド

updateValue(_:forKey:)

Updates the value stored in the dictionary for the given key, or adds a new key-value pair if the key does not exist. 辞書に格納される値を指定されたキーに対して更新します、またはそのキーが存在しないならば新しいキー値ペアを追加します。

Declaration 宣言

@discardableResult mutating func updateValue(_ value: Value, forKey key: Key) -> Value?

Parameters パラメータ

value

The new value to add to the dictionary. この辞書に加える新しい値。

key

The key to associate with value. If key already exists in the dictionary, value replaces the existing associated value. If key isn’t already a key of the dictionary, the (key, value) pair is added. valueと結び付けられるキー。keyが既に辞書の中に存在するならば、valueが既存の結び付けられる値に取って代わります。keyがまだこの辞書のキーでないならば、(key, value)ペアが加えられます。

Return Value 戻り値

The value that was replaced, or nil if a new key-value pair was added. 取って代わられた値、または新しいキー値ペアが加えられたならばnil

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, updateValue(_:forKey:) returns the original value. 新しい値が既存のキーの値に取って代わるかどうかをあなたが知る必要がある場合は、キーに基づく添え字を使うのではなくこのメソッドを使ってください。既存のキーの値が更新されるならば、updateValue(_:forKey:)は元の値を返します。


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. 与えられたキーがこの辞書の中に存在しないならば、このメソッドはそのキー値ペアを加えて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."

See Also 参照

Adding Keys and Values キーと値を追加する