有没有比这一行更有效的方法从 HashMap 获取拥有的值?
let output_items = output_tables.get(TABLE_NAME_TLIST).unwrap().to_owned();
Run Code Online (Sandbox Code Playgroud)
此屏幕截图扩展了类型:
Cor*_*ien 16
如果您想获得该值的所有权,HashMap::remove()将返回 anOption<T>而不是Option<&T>by 返回HashMap::get()。看看这个游乐场:
use std::collections::HashMap;
fn main() {
let mut map = HashMap::new();
map.insert(1, "a");
assert_eq!(map.remove(&1), Some("a"));
assert_eq!(map.remove(&1), None);
}
Run Code Online (Sandbox Code Playgroud)
如果您希望该值保留在 中,HashMap但又在其他地方拥有该值,则可以将其包装在 中Rc<T>以共享所有权。如果对象需要可变,您可以将其包装在Rc<RefCell<T>>.
| 归档时间: |
|
| 查看次数: |
2598 次 |
| 最近记录: |