gpt4 book ai didi

ruby - 更深入地解释ruby中的reduce/inject方法

转载 作者:数据小太阳 更新时间:2023-10-29 07:47:25 25 4
gpt4 key购买 nike

一段时间以来,我一直在绞尽脑汁。

当使用 reduce 时 - 为什么返回第一个元素而不执行 block 中定义的操作?还是我错过了减少工作原理的关键点?

在下面的例子中:

arr = [1, 3, 5]

arr.reduce {|sum, n| sum + (n * 3) }
#=> 25

我本以为结果是 27

开始于:

0 + (1 * 3) = 3
3 + (3 * 3) = 12
12 + (5 * 3) = 27

经过一段时间的尝试,我发现在第一个“滴答”中——数组中的对象只是被添加到总和而不是相乘。这样计算更像是:

??? = 1
1 + (3 * 3) = 10
10 + (5 * 3) = 25

有人可以帮我弄清楚我在哪里偏离了道路吗?

最佳答案

它在 the docs 中.

If you do not explicitly specify an initial value for memo, then the first element of collection is used as the initial value of memo.

关于ruby - 更深入地解释ruby中的reduce/inject方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53885507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com