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

Rust中是否存在类似Python列表推导式的数组修改方式?

Rust中类似Python列表推导式的实现方式

Rust没有Python那样原生的列表推导式语法,但可以通过迭代器结合map与collect方法,或者直接对固定大小数组使用map方法,实现“生成修改后新数组”的需求,以下是具体示例:

1. 生成动态向量(Vec,类似Python列表)

如果需要生成动态长度的集合,用迭代器的map转换元素,再通过collect转为Vec:

let old_arr = [2, 4, 6];
// 迭代数组元素,每个元素乘2后收集为Vec
let new_vec: Vec<i32> = old_arr.iter().map(|&x| x * 2).collect();
// new_vec 结果为 [4, 8, 12]

注:iter()返回的是元素的引用,所以闭包里用&x解引用获取原值;collect需要指定类型(或通过上下文让编译器自动推断)。

2. 生成固定大小数组

如果要得到和原数组长度一致的固定大小数组(Rust 1.55及以上版本支持),可以直接调用数组的map方法:

let old_arr = [2, 4, 6];
// 对数组每个元素执行乘2操作,返回同大小的新数组
let new_arr: [i32; 3] = old_arr.map(|x| x * 2);
// new_arr 结果为 [4, 8, 12]

这种方式不需要迭代器收集,直接通过数组自身的map方法完成元素转换,语法更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 07:09:20