From: nobu.nakada@... Date: 2002-06-17T14:25:59+09:00 Subject: [ruby-dev:17479] Re: blocks and local variables --Multipart_Mon_Jun_17_14:25:55_2002-1 Content-Type: text/plain; charset=ISO-2022-JP なかだです。 At Sun, 16 Jun 2002 17:37:20 +0900, Takaaki Tateishi wrote: > > > いえ,局所変数を使ったブロックパラメータについては仕様変更を > > > して欲しいと思っています. > > > > ブロックローカルな変数への代入とするということだと思ってました > > が、そうでないとするとどういう仕様でしょうか。 > > ブロックパラメータとして局所変数を利用している場合には,ブロックに > ローカルな変数とします.それ以外については現在の仕様でよいと思って > います. たぶん同じことをいっているのだと思いますが、 > foo{|a| ... } # 仕様変更 ここでaがブロックローカルになる以外は、現状と同じく多重代入とし て扱うということですよね。 > > メソッドとブロックの引数の扱いの違いは、それ以外にも省略時引数 > > とか実引数の個数が違うときの振るまいとかあるので、一部だけを真 > > 似るのもどうかという気もしなくもありません。 > > これはパラメータへの値の割り当て方法についてですよね? > > 単に,局所変数以外にもパラメータとして$a,@a,@@aなどを使えればいい > ですねというだけで,変数への値の割り当て方法を変更しようということ > までは言っていないのです. > インスタンス変数などをパラメータとして使えるようにすることで,割り > 当て方法にも影響してくるのでしょか? 現状では意味的に違いがあるわけです。ブロックの場合は多重代入だから左辺 値になるものならすべてOK、メソッドの場合は変数の宣言なので有効な名前の み、という風に理解してますが。 たしかに、便利な場合もあると思います。まつもとさんを説得してみてくださ い。 やっつけ仕事っぽいですが、一応試してみたのでパッチを付けときます。ロー カル変数以外でオプショナルでないものは、一旦ローカル変数に代入してから コピーしてます。 --Multipart_Mon_Jun_17_14:25:55_2002-1 Content-Type: text/x-diff; type=gzip; charset=US-ASCII Content-Disposition: attachment; filename="argument_var.diff.gz" Content-Transfer-Encoding: base64 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 --Multipart_Mon_Jun_17_14:25:55_2002-1 Content-Type: text/plain; charset=ISO-2022-JP -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦 --Multipart_Mon_Jun_17_14:25:55_2002-1--