Ruby 中 inject/reduce 方法的用法?

· 约 3 分钟读完 · 第 111 / 199 章

推荐答案

本题详细解读

1. inject 和 reduce 方法的基本概念

inject 和 reduce 是 Ruby 中用于累积操作的方法,它们的功能完全相同,只是名称不同。这两个方法通常用于对集合(如数组)中的元素进行累积操作,例如求和、求积、拼接字符串等。

2. 方法签名

  • initial:累积操作的初始值。
  • memo:累积器,用于保存中间结果。
  • obj:当前迭代的元素。
  • block:对每个元素执行的操作。

3. 使用示例

3.1 求和

在这个例子中,inject 方法从初始值 0 开始,依次将数组中的每个元素加到 result 上,最终返回累积的结果。

3.2 求积

在这个例子中,inject 方法从初始值 1 开始,依次将数组中的每个元素乘到 result 上,最终返回累积的结果。

4. 省略初始值

如果省略初始值,inject 和 reduce 会将数组的第一个元素作为初始值,并从第二个元素开始迭代。

5. 符号作为块

inject 和 reduce 还可以接受一个符号作为块,表示要执行的操作。

这种方式更加简洁,适用于简单的累积操作。