HashMap插入数据前后,value的地址打印不同?
use std::collections::HashMap;
fn main() {
let mut scores: HashMap<&str, String> = HashMap::new();
let key: &str = "qiul";
let value: String = String::from("good");
println!("{:p}", &value);
scores.insert(key, value);
let x = scores.get("qiul");
if let Some(s) = x {
println!("{:p}", s);
}
}
这里两次地址打印不同,我个人觉得是不是 HashMap 会复制一份传入的 value 值,并且存储的是复制的那一份。但是我在网上没有找到明确的答案,问了 chatgpt 也没有明确的回答,希望有了解的大佬能够说一下为什么这里两次地址打印不同。
推荐文章: