[Ruby]Hash#to_proc

selfに対応する値を返すProcオブジェクトを返すメソッド。

以下は英語版と日本語版のるりまから引用。

h = {foo: 0, bar: 1, baz: 2}
proc = h.to_proc
proc.class # => Proc
proc.call(:foo) # => 0
proc.call(:bar) # => 1
proc.call(:nosuch) # => nil

Hash#to_procのRuby実装イメージ。以下、Procのススメから引用 selfが任意のhashで、_1 がprocの引数で渡している中身。

class Hash
  def to_proc
    proc do |_1|
      self[_1]
    end
  end
end
h = {foo: 0, bar: 1, baz: 2}
%i(foo bar).map(&h)
# => => [0, 1]

# 以下のコードと同じ
%i(foo bar).map{|key| h[key]}
# => => [0, 1]

【参考】