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人身上。