在更新HashMap的时候,有以下几个常见的情况
fn main() {
use std::collections::HashMap;
let mut scores = HashMap::new();
scores.insert("Blue", 10);
// 覆盖已有的值,返回一个Option类型,返回旧的值
let old = scores.insert("Blue", 20);
assert_eq!(old, Some(10));
// 查询新插入的值,通过键查询值,返回一个Option类型,但是是引用
let new = scores.get("Blue");
assert_eq!(new, Some(&20));
// 查询Yellow对应的值,若不存在则插入新值
let v = scores.entry("Yellow").or_insert(5);
assert_eq!(*v, 5); // 不存在,插入5
// 查询Yellow对应的值,若不存在则插入新值
let v = scores.entry("Yellow").or_insert(50);
assert_eq!(*v, 5); // 已经存在,因此50没有插入
}
标签:HashMap,更新,assert,let,Yellow,scores,eq,rust
From: https://www.cnblogs.com/jye159X/p/17367165.html