今天在做rustlings的vec2.rs这个练习的时候,看到了这么一串代码:
这个函数主要是实现将输入的动态数组v中的每个元素乘以2,然后返回一个新的列表。
在这里我第一次看到了这个map方法,査了一下大概是这样的:
map()
通过其参数将一个迭代器转换为另一个迭代器. 它在原来的迭代器的基础上,产生一个新的迭代器,它在原始迭代器的每个元素上调用这个闭包。
相当于是对原来的v.iter()中会遍历到的每个元素,把元素命名为num,接着调用了下面这个闭包:
代码语言:javascript复制{
return num*2;
}
这样就得到一个新的迭代器,这个迭代器中的数值是已经乘2的了。接着我们27行使用.collect()方法,将新的迭代器转换为新的数组。
上面这段代码大概就是这个意思。