可能是重复问题:
在 Ruby 中,map(&:name) 是什么意思?
我遇到了一段代码片段,其中包含了以下内容
a.each_slice(2).map(&:reverse)
我不知道&:
运算符的功能。它是如何工作的?
可能是重复问题:
在 Ruby 中,map(&:name) 是什么意思?
我遇到了一段代码片段,其中包含了以下内容
a.each_slice(2).map(&:reverse)
我不知道&:
运算符的功能。它是如何工作的?
在Ruby中没有&:
运算符。你看到的是将&
运算符应用于:symbol
的结果。
在方法参数列表中,&
运算符获取其操作数,如果它还不是一个Proc
对象(通过调用to_proc
方法来进行转换),并像使用一个块一样将其传递给方法。
my_proc = Proc.new { puts "foo" }
my_method_call(&my_proc) # is identical to:
my_method_call { puts "foo" }
所以现在的问题变成了“Symbol#to_proc
是什么?”,这在Rails文档中很容易看到:
将符号转换为简单的proc,这对于枚举特别有用。例如:
# The same as people.collect { |p| p.name }
people.collect(&:name)
# The same as people.select { |p| p.manager? }.collect { |p| p.salary }
people.select(&:manager?).collect(&:salary)
salary
。 - Deekor在符号前面添加&
,你就创建了一个 lambda 函数,该函数将在传递给它的对象上调用该符号名称的方法。考虑到这一点:
ar.map(&:reverse)
大致等同于:
ar.map { |element| element.reverse }
map(&:name)
mean in Ruby?,What exactly is&:capitalize
in Ruby?,Ruby/Ruby on Rails ampersand colon shortcut,Ruby :&:symbol
syntax,... - Jörg W Mittag&:last
构造是什么意思?,你如何称呼Ruby中的&:
运算符?,在Ruby代码中map(&:name)
是做什么用的?,Ruby中的:+
和&+
代表什么?,Post.published.collect(&:views_count)
中的&:views_count
代表什么?,Ruby Proc语法,(1..4).inject(&:+)
在Ruby中的作用是什么?。 - Jörg W Mittag&:property
表示什么?在以下 ruby 语法中,符号&
代表什么?为什么要在 ruby 中对属性使用一元运算符,例如&:first
?Array#map
方法如何带参数实现此功能?ruby 中的&:
是什么意思,它是一个混合着符号的块吗? - Jörg W Mittag