第三話 begin...end
begin...endというのは、rescueやensure節と一緒に使用することが殆どだと思うが、これは、意外な場所で使用できる。
たとえば、以下のようにスーパークラスを指定する場所にも書ける。
class Foo < begin p(x = Class.new); x end p superclass end
実際には、使用できない場所を見つけるほうが難しいくらいだ。
p 10, begin 10; 20 end, 30 #=> 10 20 30 begin a = [1,2,3] end[1] = 100 p a #=> [1, 100, 3]
のように書けてしまう。
それも当然で、begin...endを、Rubyは式として処理しているのだった。