我在RailsCast中找到了这段代码:
def tag_names
@tag_names || tags.map(&:name).join(' ')
end
map(&:name)中的(&:name)是什么意思?
我在RailsCast中找到了这段代码:
def tag_names
@tag_names || tags.map(&:name).join(' ')
end
map(&:name)中的(&:name)是什么意思?
当前回答
tags.map(&:name)
是一样的
tags.map{|tag| tag.name}
&:name只是使用符号作为要调用的方法名。
其他回答
它是标签的简写。映射{|标记|tag .name}。加入(' ')
tags.map(&:name)
是一样的
tags.map{|tag| tag.name}
&:name只是使用符号作为要调用的方法名。
它的意思是
array.each(&:to_sym.to_proc)
它等价于
def tag_names
@tag_names || tags.map { |tag| tag.name }.join(' ')
end
如下所示:
def tag_names
if @tag_names
@tag_names
else
tags.map{ |t| t.name }.join(' ')
end