每当我看到Ruby代码说:
arrayNames.collect { ... }
我忘记了收集的内容并且必须查找它是什么,并发现它与map()相同。
Map,我可以理解,将1个字节映射到一个像素,函数是将x映射到ay,a 2到4,a 5到25等等。但是“collect”这个名字来自哪里? ?也许这将有助于记住“收集”方法是什么。
答案 0 :(得分:5)
它来自Smalltalk过去的日子。 Smalltalk使用collect
和select
代替map
和filter
(在许多其他语言中使用)来迭代其集合。
答案 1 :(得分:4)
要添加到其他答案,它在Smalltalk中是一种内幕笑话:
inject:into:
collect:
select:
reject:
detect:
发现模式?
答案 2 :(得分:3)
kriss是正确的,方法名称起源于Smalltalk,但为了帮助记住它在使用时的作用,你可以将其视为“从新数组中收集块中的结果”。