众所周知,wo 可以通过&:
前缀将方法传递给迭代器方法。
例如:
["a", "b"].map(&:upcase) #=> ["A", "B"]
def rettwo
2
end
["a", "b"].map(&:rettwo) #=> [2, 2]
这是问题所在,当我编写一个方法时,将一个带&:
前缀的方法传递给它,我收到一条错误消息:“ArgumentError: no receiver given”。
让我展示一下代码:
def a_simple_method &proc
puts proc.class # it shows `Proc`
proc.call
end
def a_iterator_method
puts yield
end
a_simple_method &:rettwo #=> ArgumentError: no receiver given
a_iterator_method &:rettwo #=> ArgumentError: no receiver given
我错过了什么map
,Array 的 like 方法如何处理它