Rubyのmap(&:name)というのはどういう意味? – QA@IT」にあるんだけれど、自分の言葉で説明してみる。
答えは「Procオブジェクトを呼び指す際に&proc_objectという書き方ができる
[ruby]
p = proc { |i| i.upcase }
%w(bird lion camel).map(&p)
[/ruby]
シンボルに対してto_procというメソッドを呼び出すとシンボルと同名のProcオブジェクトができる
[ruby]
p = :upcase.to_proc
[/ruby]
上記2つを組み合わせるとこうなる
[ruby]
%w(bird lion camel).map(&:upcase.to_proc)
[/ruby]
&を前置すると自動的にto_procが呼ばれるのでこう書ける
[ruby]
%w(bird lion camel).map(&:upcase)
[/ruby]