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

如何在Rust中优雅地将多维数组转换为嵌套HashMap?

实现嵌套HashMap的简洁地道方式

可以通过迭代器链式调用,在收集外层HashMap的同时将内层数组转换为HashMap,这是Rust中最简洁地道的实现方式:

use std::collections::HashMap;

fn main() {
    let tuples = [("outer1", [("inner1", 1), ("inner2", 2), ("inner3", 3)])];
    let m: HashMap<_, HashMap<_, _>> = tuples
        .into_iter()
        .map(|(k, inner_arr)| (k, inner_arr.into_iter().collect()))
        .collect();
    println!("{:?}", m);
}

说明

  • 外层通过into_iter()遍历原始元组数组,每个元素为(外层键, 内层键值对数组)
  • 用map处理每个元素:保留外层键,将内层数组通过into_iter().collect()转换为HashMap(数组迭代器产出的(K, V)元组恰好符合HashMap的收集要求)
  • 最后将所有处理后的键值对收集为外层HashMap

运行后输出即为期望结果:

{"outer1": {"inner1": 1, "inner2": 2, "inner3": 3}}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:05:23