書籍『プログラミング言語Ruby』を章ごとに語り終え、ここからはリリースされたばかりのRuby 1.9の変更点についてのお話が始まります。 Ruby 1.8とRuby 1.9は非互換です。その中には大きなものから小さなものまであって、その中でも重要なのは「ブロックパラメータ」「文字列」「M17N」です。 ブロックパラメータ Rubyにはブロックというものがあります。縦棒(|)の中に変数があって、(直前に書かれたイテレータの各要素が)渡されパラメータとして代入される。これはもともとループの抽象化として誕生したので、棒の間はループの各要素が代入される場所だったんです。(ブロックパラメータは)任意の変数、つまりグローバル変数でも、ローカル変数でも、配列でも大丈夫。何でも置けたんです。 ところが1.9からはちょっと変わっていて、グローバル変数を置こうとするともうダメ。これまではオブジェクトの属性に