如何从特定索引的字典中删除对 - Swift?

时间:2016-10-09 19:26:12

标签: swift

如何使用remove(at: DictionaryIndex<Key, Value>) Swift 中的字典中删除对?

1 个答案:

答案 0 :(得分:6)

您可以在字典中获取键/值对的索引 然后删除条目:

var dict = ["foo": 1, "bar": 2, "baz": 3]
print(dict) // ["bar": 2, "baz": 3, "foo": 1]

if let idx = dict.index(forKey: "bar") {
    dict.remove(at: idx)
    print(dict) // ["baz": 3, "foo": 1]
}

但是,字典条目的索引使用有限,因为字典中键/值对的顺序是未指定, 插入或删除条目会使所有现有字典无效 指数。

你会实现的 与

相同的结果
dict["bar"] = nil

dict.removeValue(forKey: "bar")

这些方法的区别仅在于它们返回的内容:

  • dict["bar"] = nil不会返回值。
  • dict.removeValue(forKey: "bar")返回已删除的值 (作为可选项)如果给定的密钥存在于字典中,而nil则存在。
  • dict.remove(at: idx)将删除的键/值对作为元组返回。 返回值不是可选的,因为它取a的索引 现有条目作为参数。