From: matz@... (Yukihiro Matsumoto) Date: 2002-02-08T13:24:38+09:00 Subject: [ruby-list:33798] Re: 変数の宣言 まつもと ゆきひろです In message "[ruby-list:33797] 変数の宣言" on 02/02/08, Yasuhiro Hayase writes: |% irb |irb(main):001:0> defined?(x) |nil |irb(main):002:0> x=x |nil |irb(main):003:0> defined?(x) |"local-variable" | |という事もできて面白いのですが、これにはなにか理由があるのでしょうか? |代入実行時に宣言されることにしても良いと思うのですが。 理由というか、以下のことを考えると他に良い選択肢がなかったの ですが。 * ローカル変数のスコープは静的に決まるべき、つまり代入文が 実行されたら変数が存在するというルールは*良くない* なぜなら、動的なスコープは分かりにくいし、せっかくの数少 ない最適化の機会を奪うことになるから。 まつもと ゆきひろ /:|)