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