You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用循环通过iter_mut()修改HashMap?

解决方案

你可以利用迭代器的for_each方法替代显式循环,它本质是迭代器内置的遍历逻辑,写法更简洁:

use std::collections::HashMap;

fn main() {
    let mut map: HashMap<&str, i32> = [("a", 1), ("b", 2), ("c", 3)].into();
    map.iter_mut().for_each(|(_, val)| *val *= 2);
    // 验证结果:map 现在为 {"a":2, "b":4, "c":6}
}

说明

  • iter_mut()返回的可变迭代器自带for_each方法,会对迭代器内每个元素执行传入的闭包操作,效果和原for循环完全一致,只是更偏向函数式风格。
  • 闭包里用(_, val)忽略了键的部分,直接对可变引用的val执行翻倍操作,和原循环逻辑完全等价。

内容的提问来源于stack exchange,提问作者jyz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:45:36