まつもと ゆきひろです

In message "[ruby-list:11675] Re: s = "x"; puts s *10 #->Error"
    on 99/01/22, "Takehiko Ueki" <takehiko / os.rim.or.jp> writes:

|ども、植木です。

|この場合、先に s に "x" が代入してあるので、メソッドとは区別できると
|思うのですが、宣言がしてあっても最後の引数の直前に * があるとメソッド
|として扱われるのでしょうか?

そうなんです.ローカル変数と同じ名前のメソッドってのもありえ
ますから.ローカル変数と同じ名前ならかっこなしで呼び出せないっ
て仕様も考えられますが,ここを実装した時点では思い付きません
でしたね.今でも結構大変そう.

|  puts "x" *10    #->OK
|  puts  s  *10    #->Error
|
|この2つの動作が違うというのは、なんとなく違和感が...

気持ちは分かります.Rubyの文法で一番変なところです.ここに関
して言えばPerlよりもはるかに変です.
でも,慣れて下さい.
                                まつもと ゆきひろ /:|)