From: shugo@... (MAEDA Shugo) Date: 1998-11-22T23:38:28+09:00 Subject: [ruby-dev:3631] Re: block local variable (Re: スコープの範囲) >>>>> In [ruby-dev:3629] >>>>> "前田" == MAEDA Shugo wrote: >>> foo = 0 >>> iter { >>> foo ::= 1 # ブロックローカルになる。演算子はSatherから借用:-) >>> } >>> p foo #=> 0 >>> >>> っていうのはどうでしょう。 >>> これだと名前の衝突を避けられるので、ブロックローカル変数の >>> メリットが増すと思います。 新井> 気持としては、あまりやりたくないですね。 新井> せっかくこれまで宣言を省略してきたのに… 新井> 矛盾する意見ですが (^^; 前田> Perlのlocalよりは楽だと思うんですけど(^^; 前田> # 使わなければ今までと同じですし。 あ、ひょっとしたらローカル変数の宣言を:=(もしくは::=)でしない といけないようにする、という提案と勘違いなさってます? 僕の提案はローカル変数の宣言は今まで通り普通の代入で行って、 ブロックローカルな変数を*明示的に*宣言したい時だけ :=を使う、 というものです。 初期化を兼ねた宣言なら、それほど手間もかからないと思うのですが、 いかがでしょう。 -- 前田 修吾 (mailto:shugo@aianet.ne.jp)