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

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

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

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

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

{
        return num*2;
}

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

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

转载请注明来源:https://longjin666.cn/?p=1608

欢迎关注我的公众号“灯珑”,让我们一起了解更多的事物~

你也可能喜欢

发表评论