やったこと
Proc を使ってみます。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
調査
ブロックをコンテキスト(ローカル変数のスコープやスタックフ レーム)とともにオブジェクト化した手続きオブジェクトです。
proc.rb
my_proc = Proc.new do |name|
'hoge ' + name
end
p my_proc.call('called')
def my_call(b)
p b.call('called in my_call')
end
my_call(my_proc)
出力結果
$ ruby proc.rb
"hoge called"
"hoge called in my_call"