如何使用remove(at: DictionaryIndex<Key, Value>)
从 Swift 中的字典中删除对?
答案 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的索引
现有条目作为参数。