From: Shugo Maeda Date: 2002-06-07T14:46:06+09:00 Subject: [ruby-dev:17343] Re: blocks and local variables 前田です。 At Fri, 7 Jun 2002 13:23:37 +0900, Tanaka Akira wrote: > > それは代入すると一番内側のブロックにローカルになるということ > > ですか? 例を見るとそうみたいですね。でも、それだと外側のブ > > ロックに属するブロックローカル変数への代入ができませんよね。 > > ふと思ったんですが、:= で代入すると(その変数がブロックの外で使われてい > ても)そのブロック内でローカルになるとか。 > > Ruby では代入によって変数が宣言されるので、やるとしたら、代入の構文を > いじるか、宣言のための構文を新規に入れるか、どちらかなんじゃないですか > ね。 そうそう、そう思っていて、以前提案もしたのですよね。 http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-list/11013?10856-11769 # もう4年も前の話になるのか。 個人的には、ここに書いてあるように、既存のローカル変数と識別子が 重複しない場合も、普通の代入ではブロックローカルにせずに、ブロッ クローカル変数の宣言/初期化を行う場合はかならず:=を使う、という仕 様の方が便利な気がする(今みたいにメソッドの先頭でfoo = nilなどと する必要がなくなるから)のですが、互換性を考えると今更ちょっと無理 ですよね。 At Fri, 7 Jun 2002 13:27:56 +0900, matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > そういえば、以前まさに田中さんが提案されたのとまったく同じア > イディアを持っていたんですが、その後どういう結論を出したのか > 忘れちゃったな。 当時は反応がなかったようです:-( -- 前田 修吾