map(&:name)在Ruby中是什么意思?

我在RailsCast中发现了以下代码:

def标签名称
@tag|names | tags.map(&:name).join(“”)
终止

地图(&name)中的(&name)是什么意思

它是tags.map(&:name.to_proc).join(“”)的缩写。

如果foo是具有to_proc方法的对象,则可以将其作为传递给方法&foo,它将调用foo.to_proc,并将其用作方法的块

Symbol#to_proc方法最初由ActiveSupport添加,但已集成到Ruby 1.8.7中。这就是它的实施:

类符号
def to_proc
过程新do | obj,*参数|
obj.send self,*args
终止
终止
终止

发表评论