可能重复:
What does map(&:name) mean in Ruby?Ruby中的“temps.each(&:valid?)”是什么意思?
是什么在each
发现&:valid?
是什么意思? 我见过.each do |r|
或其他,但不知道这个如何工作?
可能重复:
What does map(&:name) mean in Ruby?Ruby中的“temps.each(&:valid?)”是什么意思?
是什么在each
发现&:valid?
是什么意思? 我见过.each do |r|
或其他,但不知道这个如何工作?
&
被称为to_proc
运算符。它将符号(:valid?
)扩展为Proc。 所以你的例子相当于:
temps.each { |t| t.valid? }
&:符号是符号处理的简写。
这是一篇很好的博客文章。 http://blog.hasmanythrough.com/2006/3/7/symbol-to-proc-shorthand
我认为这只是'temps.collect {| t | t.valid == true}' – 2012-03-29 13:52:23
你可以阅读更多关于它[这里](http://kconrails.com/2010/12/01/ruby-enumerable-primer-part-2-unary-ampersand-operator/) – Christian 2012-03-29 14:03:36
这是一个不少于17个其他问题的复本,这些问题已经在StackOverflow上提出并解答:[Understanding \ [ClassOne,ClassTwo \] .each \(&:my_method \)](http://StackOverflow.Com/q/99318 /),[Ruby中'map(&:name)'的意思是什么?](http://StackOverflow.Com/q/1217088/),[Ruby中的'&:capitalize'究竟是什么? ](http://StackOverflow.Com/q/1792683/),[Ruby/Ruby on Rails和符号冒号捷径](http://StackOverflow.Com/q/1961030/),[Ruby:'&:symbol'语法](http://StackOverflow.Com/q/2096975/),... – 2012-03-29 14:53:54