From: Tanaka Akira Date: 2006-07-11T12:51:33+09:00 Subject: [ruby-dev:29014] def m(a=nil, b) ふと、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]