Ruby 中的“temps.each(&:valid?)”是啥意思? [复制]
Posted
技术标签:
【中文标题】Ruby 中的“temps.each(&:valid?)”是啥意思? [复制]【英文标题】:What does "temps.each(&:valid?)" mean in Ruby? [duplicate]Ruby 中的“temps.each(&:valid?)”是什么意思? [复制] 【发布时间】:2012-04-13 04:18:20 【问题描述】:可能重复:What does map(&:name) mean in Ruby?
each
中的&:valid?
是什么意思?
我见过.each do |r|
或其他什么,但不确定这个是如何工作的?
【问题讨论】:
我认为这只是temps.collect |t| t.valid == true
的简写
你可以阅读更多关于它here
这是 *** 上已经提出和回答的不少于 17 个其他问题的副本:Understanding [ClassOne, ClassTwo].each(&:my_method)、What does map(&:name)
mean in Ruby?、What exactly is &:capitalize
in Ruby?、Ruby/Ruby on Rails ampersand colon shortcut、Ruby : &:symbol
syntax、 …
…What is this &:last
Ruby Construct Called?,What do you call the &:
operator in Ruby?,What does map(&:name)
do in this Ruby code?,What are :+
and &+
in ruby?,&:views_count
in Post.published.collect(&:views_count)
,Ruby Proc Syntax,How does “(1..4).inject(&:+)
” work in Ruby,…
…What does following statement &:property
?、What does the &
mean in the following ruby syntax?、Why would one use the unary operator on a property in ruby? i.e &:first
、how does Array#map
have parameter to do something like this?、what does &:
mean in ruby, is it a block mixed with a symbol? 和 what is the functionality of “&:
” operator in ruby?。
【参考方案1】:
&
称为to_proc
运算符。它将符号 (:valid?
) 扩展为 Proc。
所以你的例子相当于:
temps.each |t| t.valid?
【讨论】:
【参考方案2】:&:symbol 是符号的简写。
这是一篇很好的博客文章。 http://blog.hasmanythrough.com/2006/3/7/symbol-to-proc-shorthand
【讨论】:
以上是关于Ruby 中的“temps.each(&:valid?)”是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章