2015-09-07 Ruby にはブロックスコープがない Ruby ので、それこそブロックをつかってブロックスコープみたいなのを作ってみる。 module Kernel def b yield end end x = 1 b {|x| x = 2 b {|x| x = 3 puts x #=>3 } puts x #=>2 } puts x #=>1 もちろん、括弧の代わりに do ~ end でもできます。 ただし、変数をいちいち |○|としないとスコープにならない。メソッド名の b も邪魔。しかし、ブロックスコープがなくても不便だと思ったことがないなあ。