From: masaki Date: 2002-07-18T22:38:33+09:00 Subject: [ruby-dev:17712] Re: self in block 正木です。 From: Takaaki Tateishi Subject: [ruby-dev:17710] Re: self in block Date: Thu, 18 Jul 2002 21:16:18 +0900 > > すいません,僕が何か勘違いしているのかもしれませんが, > 例えば, > > class Foo > def initialize > @foo = Proc.new{ ... self ... } # Fooのインスタンスとしてのselfを使いたい > end > ... > end > > ということができなくなる心配はないですか? > -- 確かにそういう場合は面倒なことになりそうです。 ただ回避策はあります。 block の新しい仕様がまだ決っていませんが、私が希望している "<...; a,b>で明示的に宣言した変数(a,b)だけがブロックローカルでなくなる。" を使うと def initialize a=self @foo = Proc.new{ <...;a> a ... } end となります。 問題の case に限っていえば、変数の scope の問題はないわけですから、 現在の block の仕様を使えば良さそうですが。