注入与红宝石中的减少相同的东西?

Jac*_*cky 108 ruby reduce alias inject

我看到他们在这里被记录在案.它们是一样的吗?为什么Ruby有这么多别名(比如数组的map/collect)?非常感谢.

Zac*_*ach 159

是的,它也被称为fold许多其他编程语言和数学.Ruby别名很多,以便对具有不同背景的程序员直观.如果您想使用#lengthArray,即可.如果你想使用#size,那也没关系!

  • #length和#count在Ruby中不相同.#length和#size是. (23认同)
  • 嗯,我认为当前的Ruby文档http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-reduce可能会更好,如果它只是说与`inject`相同,以便用户不要我们不得不阅读这两个描述,并试着弄清楚它们是否相同......这是否符合DRY原则? (18认同)
  • 3.length给出NoMethodError; 3.size返回4.显然3不是数组,但要注意鸭子打字!(3_000_000_000_000_000.size返回8并且3_000_000_000_000_000_000_000_000_000_000_000_000_000_000.size返回20;它似乎是占用的内存量.) (8认同)
  • 如果你想创建自己的别名,你可能会对[alias_method](http://ruby-doc.org/core-2.0.0/Module.html#method-i-alias_method)感兴趣. (3认同)
  • @太极者无极而生,好点,我对此感到困惑,正如你所预知的那样 (3认同)
  • 文件上的+1既注入又减少,没有任何解释,更清楚地说它们是等价的.我用谷歌搜索,因为我很困惑,最终来到这里. (3认同)

axi*_*iac 5

Enumerable#reduce明确指定文档的最新版本:

injectreduce方法是别名。两者都没有性能优势。