Enum alloc::collections::btree_map::Entry
1.0.0 · source · pub enum Entry<'a, K: 'a, V: 'a, A: Allocator + Clone = Global> {
Vacant(VacantEntry<'a, K, V, A>),
Occupied(OccupiedEntry<'a, K, V, A>),
}
Variants§
Implementations§
source§impl<'a, K: Ord, V, A: Allocator + Clone> Entry<'a, K, V, A>
impl<'a, K: Ord, V, A: Allocator + Clone> Entry<'a, K, V, A>
sourcepub fn or_insert_with<F: FnOnce() -> V>(self, default: F) -> &'a mut V
pub fn or_insert_with<F: FnOnce() -> V>(self, default: F) -> &'a mut V
1.50.0 · sourcepub fn or_insert_with_key<F: FnOnce(&K) -> V>(self, default: F) -> &'a mut V
pub fn or_insert_with_key<F: FnOnce(&K) -> V>(self, default: F) -> &'a mut V
如果为空,则通过插入默认函数的结果,确保值在条目中。
通过为 .entry(key)
方法调用期间移动的键提供默认函数引用,此方法可以生成用于插入的键派生值。
提供了对已移动键的引用,因此不需要克隆或复制键,这与 .or_insert_with(|| ... )
不同。
Examples
use std::collections::BTreeMap;
let mut map: BTreeMap<&str, usize> = BTreeMap::new();
map.entry("poneyland").or_insert_with_key(|key| key.chars().count());
assert_eq!(map["poneyland"], 9);
Run1.26.0 · sourcepub fn and_modify<F>(self, f: F) -> Selfwhere
F: FnOnce(&mut V),
pub fn and_modify<F>(self, f: F) -> Selfwhere F: FnOnce(&mut V),
在任何潜在的插入 map 之前,提供对占用条目的就地可变访问。
Examples
use std::collections::BTreeMap;
let mut map: BTreeMap<&str, usize> = BTreeMap::new();
map.entry("poneyland")
.and_modify(|e| { *e += 1 })
.or_insert(42);
assert_eq!(map["poneyland"], 42);
map.entry("poneyland")
.and_modify(|e| { *e += 1 })
.or_insert(42);
assert_eq!(map["poneyland"], 43);
Run