如何从swift词典中删除键值对?

do *_*ter 63 dictionary swift swift2

如果可能的话,我想从字典中删除一个键值对.

var dict: Dictionary<String,String> = [:]
var willRemoveKey = "SomeKey"
dict.removePair(willRemoveKey) //that's what I need
Run Code Online (Sandbox Code Playgroud)

Kam*_*xom 133

你可以用这个:

dict[willRemoveKey] = nil
Run Code Online (Sandbox Code Playgroud)

或这个:

dict.removeValueForKey(willRemoveKey)
Run Code Online (Sandbox Code Playgroud)

唯一的区别是第二个将返回删除的值(如果不存在则返回nil)

斯威夫特3

dict.removeValue(forKey: willRemoveKey)
Run Code Online (Sandbox Code Playgroud)

  • 有没有其他人注意到文档说这是 O(n),其中 n 是字典的大小?! (7认同)
  • @WiseOldDuck 将下标分配给“nil”总是会删除该键。要在具有可选值类型的字典中分配真正的“nil”值,请分配“.some(nil)”。 (4认同)
  • 这现在应该被称为`dict.removeValue(willRemoveKey)`,因为它看起来像 .removeValueForKey 已被重命名 - 感谢您的帮助! (3认同)
  • 如果您的值是可选项,那么下标语法如何工作? (3认同)

Sas*_*sho 18

Swift 3:Swift 4:

x.removeValue(forKey: "MyUndesiredKey")

干杯


Fan*_*ini 6

dict.removeValueForKey(willRemoveKey)
Run Code Online (Sandbox Code Playgroud)

或者您可以使用下标语法:

dict[willRemoveKey] = nil
Run Code Online (Sandbox Code Playgroud)