Vector 如何使用向量值修改HashMap?
我正试图用向量作为值构建一个Vector 如何使用向量值修改HashMap?,vector,hashmap,rust,mutable,mutability,Vector,Hashmap,Rust,Mutable,Mutability,我正试图用向量作为值构建一个HashMap,但我在借用/使用寿命方面遇到了问题 任务是根据fully_score方法查找给定文本中最有趣的单词。我想在HashMap中存储每个不同分数的单词列表 我有以下代码 use std::collections::HashMap; fn main() { let text = ""; let mut scores: HashMap<usize, &mut Vec<&str>> = HashMap::n
HashMap
,但我在借用/使用寿命方面遇到了问题
任务是根据fully_score
方法查找给定文本中最有趣的单词。我想在HashMap
中存储每个不同分数的单词列表
我有以下代码
use std::collections::HashMap;
fn main() {
let text = "";
let mut scores: HashMap<usize, &mut Vec<&str>> = HashMap::new();
for word in text.split(' ') {
let funny_score = funny_score(word);
match scores.get_mut(&funny_score) {
Some(list) => list.push(word),
None => {
let mut list = vec![word];
scores.insert(funny_score, &mut list);
}
}
}
}
fn funny_score(_: &str) -> usize { 0 }
我如何才能做到这一点?为什么您决定使用一个作为引用的值(
HashMap
)?第二个副本解释了第一个错误,只需将“从函数中返回”替换为“从块中返回我的None
案例”。感谢Shepmaster,该示例非常有用。当我查看HashMap文档时,我没有足够仔细地阅读相关的方法文档(,)。我很高兴HashMap和Entry API实际上很方便使用。至于为什么奇怪的HashMap签名。。。我根据早期的一个编译器错误做出了一个假设,认为这是必要的。听起来很傻,但有时也会发生在新的Rustacean人身上。