Procオブジェクトとは?
例
Procオブジェクトをつくります
proc = Proc.new { puts 'hoge' }
クラスを確認すると、Procオブジェクトであることがわかる
proc.class
=> Proc
Procオブジェクトを作った時にブロックで渡した処理をcallで実行することができる
proc.call
hoge # hogeが出力される
Procではブロックの外側にある変数を参照することができる
hoge = :hoge
proc = Proc.new { puts hoge }
proc.call
hoge # hogeが出力される
hoge = :fuga
proc.call
fuga # 次はfugaが出力される
注意
Procオブジェクトが作成される前に変数が定義されている必要がある