&:
ご存知のように、接頭辞によってメソッドを反復子メソッドに渡すことができます。
例えば:
["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
配列の like メソッドがそれをどのように処理するか