2005年03月24日(Thu) 今日は雨降ってるし [長年日記]
● [tDiary][Ruby] style(style)はエラーですかー
tDiary-develのあおきさんのメール(SourceForge.netのアーカイブは化けてますが、追記:青木日記/Tにも書かれていました)より、
最近の CVS HEAD では、self. を省略してローカル変数と同じ名前の メソッドを呼ぶと、そのローカル変数の指すオブジェクトに対して call を呼ぶようになります。つまりm = a m(b)はa.call(b)と同じ意味です。この仕様変更のため、style(style)*1 が例外に なっていました。
ということです。
Rubyの仕様がこう変わったのは、ruby-devかruby-listで知っていたのですが、やっぱりなんとなく好きになれない。「なんとなく」だけで、どう好きになれないのか説明できないのでだまって見てるのですが、…んー。メソッドと同じ名前のローカル変数を作らなきゃいいだけなのかなぁ。でもメソッド名が返すオブジェクトの種類をあらわすようにつけたいように、変数名が代入されてるオブジェクトの種類をあらわすようにつけたいような気もするよなあ。…んー。でも括弧を省略した場合は今の仕様の方がわかりにくいかなぁ…。
やっぱりメールを出すほど強い議論はできないのでした。ちゃんちゃん。
*1 defaultio.rbの199行目付近
最近のツッコまれどころ