Struct alloc::collections::btree_map::OccupiedEntry 1.0.0[−][src]
pub struct OccupiedEntry<'a, K: 'a, V: 'a> { /* fields omitted */ }
Expand description
BTreeMap
中已占用条目的视图。
它是 Entry
枚举的一部分。
Implementations
从 map 获取键和值的所有权。
Examples
use std::collections::BTreeMap;
use std::collections::btree_map::Entry;
let mut map: BTreeMap<&str, usize> = BTreeMap::new();
map.entry("poneyland").or_insert(12);
if let Entry::Occupied(o) = map.entry("poneyland") {
// 我们从 map 中删除了这个条目。
o.remove_entry();
}
// 如果现在尝试获取该值,它将为 panic:
// println!("{}", map["poneyland"]);
Run获取条目中的值的可变引用。
如果您需要引用可能比销毁 Entry
值还长的 OccupiedEntry
,请参阅 into_mut
。
Examples
use std::collections::BTreeMap;
use std::collections::btree_map::Entry;
let mut map: BTreeMap<&str, usize> = BTreeMap::new();
map.entry("poneyland").or_insert(12);
assert_eq!(map["poneyland"], 12);
if let Entry::Occupied(mut o) = map.entry("poneyland") {
*o.get_mut() += 10;
assert_eq!(*o.get(), 22);
// 我们可以多次使用同一个 Entry。
*o.get_mut() += 2;
}
assert_eq!(map["poneyland"], 24);
Run将条目转换为其值的可变引用。
如果需要多次引用 OccupiedEntry
,请参见 get_mut
。
Examples
use std::collections::BTreeMap;
use std::collections::btree_map::Entry;
let mut map: BTreeMap<&str, usize> = BTreeMap::new();
map.entry("poneyland").or_insert(12);
assert_eq!(map["poneyland"], 12);
if let Entry::Occupied(o) = map.entry("poneyland") {
*o.into_mut() += 10;
}
assert_eq!(map["poneyland"], 22);
Run使用 OccupiedEntry
键设置条目的值,并返回条目的旧值。
Examples
use std::collections::BTreeMap;
use std::collections::btree_map::Entry;
let mut map: BTreeMap<&str, usize> = BTreeMap::new();
map.entry("poneyland").or_insert(12);
if let Entry::Occupied(mut o) = map.entry("poneyland") {
assert_eq!(o.insert(15), 12);
}
assert_eq!(map["poneyland"], 15);
Run从 map 中获取条目的值,并将其返回。
Examples
use std::collections::BTreeMap;
use std::collections::btree_map::Entry;
let mut map: BTreeMap<&str, usize> = BTreeMap::new();
map.entry("poneyland").or_insert(12);
if let Entry::Occupied(o) = map.entry("poneyland") {
assert_eq!(o.remove(), 12);
}
// 如果我们尝试获得 `poneyland` 的值,则它将为 panic:
// println!("{}", map["poneyland"]);
Run