为什么Ruby的Array.map()也称为Array.collect()?

时间:2010-07-02 08:37:57

标签: ruby mapping

每当我看到Ruby代码说:

arrayNames.collect { ... }

我忘记了收集的内容并且必须查找它是什么,并发现它与map()相同。

Map,我可以理解,将1个字节映射到一个像素,函数是将x映射到ay,a 2到4,a 5到25等等。但是“collect”这个名字来自哪里? ?也许这将有助于记住“收集”方法是什么。

3 个答案:

答案 0 :(得分:5)

它来自Smalltalk过去的日子。 Smalltalk使用collectselect代替mapfilter(在许多其他语言中使用)来迭代其集合。

答案 1 :(得分:4)

要添加到其他答案,它在Smalltalk中是一种内幕笑话:

  • inject:into:
  • collect:
  • select:
  • reject:
  • detect:

发现模式?

答案 2 :(得分:3)

kriss是正确的,方法名称起源于Smalltalk,但为了帮助记住它在使用时的作用,你可以将其视为“从新数组中收集块中的结果”。