Railsで見かけるmap(&:upcase)

Railsで見かけるmap(&:upcase)答えは「Rubyのmap(&:name)というのはどういう意味? – QA@IT」にあるんだけれど、自分の言葉で説明してみる。

Procオブジェクトを呼び指す際に&proc_objectという書き方ができる

p = proc { |i| i.upcase }
%w(bird lion camel).map(&p)

シンボルに対してto_procというメソッドを呼び出すとシンボルと同名のProcオブジェクトができる

p = :upcase.to_proc

上記2つを組み合わせるとこうなる

%w(bird lion camel).map(&:upcase.to_proc)

&を前置すると自動的にto_procが呼ばれるのでこう書ける

%w(bird lion camel).map(&:upcase)

Pocket
LINEで送る

You may also like...