首页 > 解决方案 > 用另一个 HashMap 的内容扩展 HashMap

问题描述

我有一个返回 a 的函数,HashMap<String, u64>我想HashMap<String, u64>用该函数的返回值扩展另一个:

pub fn find_album(&self, artist: String, album: String) -> Vec<String>
pub fn get_tracks(&self, album_id: String) -> HashMap<String, u64>
let mut track_nums: HashMap<String, u64> = HashMap::new();
for id in client.find_album(artist, album) {
    track_nums.extend(client.get_tracks(id).iter());
}

这给了我一个错误:

    error[E0271]: type mismatch resolving `<std::collections::hash_map::Iter<'_, std::string::String, u64> as std::iter::IntoIterator>::Item == (std::string::String, u64)`
  --> src/main.rs:23:20
   |
23 |         track_nums.extend(client.get_tracks(id).iter());
   |                    ^^^^^^ expected reference, found struct `std::string::String`
   |
   = note: expected type `(&std::string::String, &u64)`
          found type `(std::string::String, u64)`

将 a 与另一对HashMap的所有对进行扩展的正确方法是什么?(key, value)HashMap

标签: hashmaprust

解决方案


推荐阅读