什么“temps.each(&:valid?)”在Ruby中意味着什么?
可能重复:
map(&:name)在Ruby中意味着什么?
什么&:valid?
发现在each
意思? 我见过.each do |r|
或者其他什么,但不确定这个是如何工作的?
&
被称为to_proc
运算符。 它将符号( :valid?
)扩展为Proc。 所以你的例子相当于:
temps.each { |t| t.valid? }
&:symbol是符号到proc的简写。
这是一篇很好的博客文章。 http://blog.hasmanythrough.com/2006/3/7/symbol-to-proc-shorthand