[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]
【参考】