ふと、1.9 なら (TCPServer#initialize のように) 第一引数を省
略可能なメソッドを def m(a=nil, b) と定義できるのではなかろ
うか、と想像し、試してみたのですが、できないようです。
% ./ruby -ve 'def m(a=nil, b) end'
ruby 1.9.0 (2006-07-10) [i686-linux]
-e:1: syntax error, unexpected ')', expecting '='
def m(a=nil, b) end
^
def m(a=nil, *x, b) end なら通るわけですが、どうも私はこの機
能を「必須引数を最後につけられる」と理解していたようです。
実際にはそう実装されてはいなかったわけですが、すこし考えてみ
たところ、そうであってはいけない理由も思い付かず、また、
TCPServer#initialize のようにそう考えたほうが便利な例もあり
ます。
あと、[ruby-dev:28715] の最初の問題は、この機能のとらえかた
の違いから発生したのではないだろうかなどとも感じます。
なので、できたらいいんではなかろうかと思ったのですが、どうで
しょう?
--
[田中 哲][たなか あきら][Tanaka Akira]