器-用:ruby高效能方法 — reduce方法

大哥们有没有人讲详细点的,我想分析下,器-用:ruby高效能方法 — reduce方法
最新回答
故人的歌

2024-09-04 01:27:25

reduce方法是ruby中的一个重要的方法,也叫inject方法(Ruby1.9之前reduce方法不可用)

reduce方法是一个可以将一个数据结构转换成另一种结构的折叠函数。因此,reduce可以提升性能,它的性能要高于逐个遍历的迭代器,比如map、select等等

符号形式

上述写法可以用reduce来简化

比如,我们要从数组中筛选出年龄大于20的用户,并以数组形式返回它们的姓名

这样写不够高效因为先用select遍历了数组选出年龄大于20的用户,返回新数组,然后这个数组有进行了map循环,又生成了一个数组

可以用reduce来实现。因为reduce是折叠函数,因此它的性能要高于map等迭代器

1.《Effective Ruby》第19条--了解如何通过reduce方法折叠集合