Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---自作ソース-----
- def log(args)
- p args + " before"
- v = yield(args)
- p args + " after"
- v
- end
- ---ここまで------
- def foo
- log("in foo"){ yield("FOO") }
- end
- def bar
- log("in bar") do
- foo do |v|
- log("in block for foo"){ yield(v) }
- end
- end
- end
- bar do |v|
- log("in block for bar"){ v * 3 }
- end
- 1.barメソッドの実行
- 2.log("in bar")の実行
- 3.in bar beforeの表示
- 4.yield(args)のコールバックで fooメソッドを実行
- 5.log("in foo")の実行
- 6.in foo beforeの表示
- 7.yield(args)のコールバックで log("in block for foo")の実行
- 8.in block for foo beforeの表示
- 9.yield(args)のコールバックで yield(v)の実行
- 10.yield(v)のコールバックで、log("in block for bar")の実行
- 11.in block for bar afterの表示
- 12.yield(args)のコールバックで v * 3の実行
- 13.vにFOOFOOFOOの値が入る
- 14.in block for foo afterの表示
- 15.in foo afterの表示
- 16.in bar afterの表示
- 17.戻り値FOOFOOFOOの表示
Add Comment
Please, Sign In to add comment