shonen.hateblo.jp

やったこと,しらべたことを書く.

Procを受けるところにメソッドを与える

やりたいこと

def f(x)
  x+2
end
p [1,2,4,8].map{|e| f(e)}

を効率よく書きたい。

Object#method を使う

Object#method を使うことでmethodのオブジェクトが取れる。

def f(x)
  x+2
end
p [1,2,4,8].map(&method(:f))

モジュールの場合

モジュールをmethodメソッドのレシーバとすれば出来る。

module M
  def self.f(x)
    x+2
  end
end
p [1,2,4,8].map(&M.method(:f))