まつもと ゆきひろです

In message "Re: [ruby-dev:33891] shadowing outer local variable"
    on Fri, 22 Feb 2008 00:46:10 +0900, rubikitch / ruby-lang.org writes:

|警告「shadowing outer local variable」はなくすべきだと思います。

ふむ。

|そもそも原因は1.8までのブロック引数の仕様がひどかったからです。
|警告を消すには1.8まで同様たとえ1文のブロックであっても
|ブロック引数の名前を変更しないといけなくなります。
|これはかなりストレスがたまります。
|善し悪しは別として同じ変数名を使うのはLispやC言語でも普通に行われています。

えーと、「なくすべき」という主張は分かりましたが、その理由は
よくわかりません。LispやCで行われているというのはあんまり理
由にならない気がしますし。

名称が重複しているのは悪いスタイルだと思いますから、それにつ
いて警告されるのは当然ではないかと。それを止めるというからに
は「それはそんなに悪いスタイルではない」とか「この警告はこん
な不利益がある」とかいう論理でないと筋が通らないでしょう。

|むしろこの警告は1.8につけるべきです。

これもよくわかりません。1.9ではなくすべきで1.8では付けるべき
というのはどういうことなんでしょうか。

                                まつもと ゆきひろ /:|)