Enum std::collections::hash_map::RawEntryMut [−][src]
pub enum RawEntryMut<'a, K: 'a, V: 'a, S: 'a> { Occupied(RawOccupiedEntryMut<'a, K, V, S>), Vacant(RawVacantEntryMut<'a, K, V, S>), }
Expand description
map 中单个条目的视图,该条目可能是空的或被已占用。
这是 Entry
的较低版本。
该 enum
是通过 HashMap
上的 raw_entry_mut
方法构造的,然后调用该 RawEntryBuilderMut
的方法之一。
Variants
Occupied(RawOccupiedEntryMut<'a, K, V, S>)
一个被占用的条目。
Vacant(RawVacantEntryMut<'a, K, V, S>)
一个空的条目。
Implementations
pub fn or_insert(self, default_key: K, default_val: V) -> (&'a mut K, &'a mut V) where
K: Hash,
S: BuildHasher,
[src]
pub fn or_insert(self, default_key: K, default_val: V) -> (&'a mut K, &'a mut V) where
K: Hash,
S: BuildHasher,
[src]通过插入默认值 (如果为空) 来确保值在条目中,并向条目中的键和值返回可变引用。
Examples
#![feature(hash_raw_entry)] use std::collections::HashMap; let mut map: HashMap<&str, u32> = HashMap::new(); map.raw_entry_mut().from_key("poneyland").or_insert("poneyland", 3); assert_eq!(map["poneyland"], 3); *map.raw_entry_mut().from_key("poneyland").or_insert("poneyland", 10).1 *= 2; assert_eq!(map["poneyland"], 6);Run
pub fn or_insert_with<F>(self, default: F) -> (&'a mut K, &'a mut V) where
F: FnOnce() -> (K, V),
K: Hash,
S: BuildHasher,
[src]
pub fn or_insert_with<F>(self, default: F) -> (&'a mut K, &'a mut V) where
F: FnOnce() -> (K, V),
K: Hash,
S: BuildHasher,
[src]通过插入默认函数 (如果为空) 的结果来确保值在条目中,并在条目中的键和值上返回变量引用。
Examples
#![feature(hash_raw_entry)] use std::collections::HashMap; let mut map: HashMap<&str, String> = HashMap::new(); map.raw_entry_mut().from_key("poneyland").or_insert_with(|| { ("poneyland", "hoho".to_string()) }); assert_eq!(map["poneyland"], "hoho".to_string());Run
在任何潜在的插入 map 之前,提供对占用条目的就地可变访问。
Examples
#![feature(hash_raw_entry)] use std::collections::HashMap; let mut map: HashMap<&str, u32> = HashMap::new(); map.raw_entry_mut() .from_key("poneyland") .and_modify(|_k, v| { *v += 1 }) .or_insert("poneyland", 42); assert_eq!(map["poneyland"], 42); map.raw_entry_mut() .from_key("poneyland") .and_modify(|_k, v| { *v += 1 }) .or_insert("poneyland", 0); assert_eq!(map["poneyland"], 43);Run