Syntax Rust是否具有与Python';s列表理解语法?

Syntax Rust是否具有与Python';s列表理解语法?,syntax,rust,list-comprehension,iterable,Syntax,Rust,List Comprehension,Iterable,Python列表理解非常简单: >>l=[x代表范围(1,10)内的x,如果x%2==0] >>> [2, 4, 6, 8] Rust是否具有类似以下的等效语法: let vector = vec![x for x in (1..10) if x % 2 == 0] // [2, 4, 6, 8] 您可以只使用迭代器: fn main() { let v1 = (0u32..9).filter(|x| x % 2 == 0).map(|x| x.pow(2)).collect::&

Python列表理解非常简单:

>>l=[x代表范围(1,10)内的x,如果x%2==0]
>>> [2, 4, 6, 8] 
Rust是否具有类似以下的等效语法:

let vector = vec![x for x in (1..10) if x % 2 == 0]
// [2, 4, 6, 8]

您可以只使用迭代器:

fn main() {
    let v1 = (0u32..9).filter(|x| x % 2 == 0).map(|x| x.pow(2)).collect::<Vec<_>>();
    let v2 = (1..10).filter(|x| x % 2 == 0).collect::<Vec<u32>>();

    println!("{:?}", v1); // [0, 4, 16, 36, 64]
    println!("{:?}", v2); // [2, 4, 6, 8]
}
fn main(){
设v1=(0u32..9).filter(|x | x%2==0.map(|x | x.pow(2)).collect::();
设v2=(1..10).filter(|x | x%2==0.collect::();
println!(“{:?}”,v1);//[0,4,16,36,64]
println!(“{:?}”,v2);//[2,4,6,8]
}
是一个宏,用于Rust中Python风格的列表和字典(
HashMap
)的理解

#[macro_use(c)]
extern crate cute;

let vector = c![x, for x in 1..10, if x % 2 == 0];

我已经看过了,发现它真的很有趣,但我想要的更多是一个内置的函数/语法,比如@ljedrz-answered。@Darkaird-rust有一个相当精简的std库,所以如果没有额外的板条箱,你可能不会走得很远。你知道复杂性吗?应用过滤器然后映射是否会强制迭代两次,从而使计算时间增加一倍?@Darkaird否。迭代器很懒惰,每个元素只处理一次。