Rust的std::iter::map()方法

2023-10-18 10:41:49 浏览数 (2)

今天在做rustlings的vec2.rs这个练习的时候,看到了这么一串代码:

这个函数主要是实现将输入的动态数组v中的每个元素乘以2,然后返回一个新的列表。

在这里我第一次看到了这个map方法,査了一下大概是这样的:

map()通过其参数将一个迭代器转换为另一个迭代器. 它在原来的迭代器的基础上,产生一个新的迭代器,它在原始迭代器的每个元素上调用这个闭包。

相当于是对原来的v.iter()中会遍历到的每个元素,把元素命名为num,接着调用了下面这个闭包:

代码语言:javascript复制
{
        return num*2;
}

这样就得到一个新的迭代器,这个迭代器中的数值是已经乘2的了。接着我们27行使用.collect()方法,将新的迭代器转换为新的数组。

上面这段代码大概就是这个意思。

0 人点赞