From: Shin'ya Adzumi Date: 2002-07-18T23:39:31+09:00 Subject: [ruby-dev:17713] Re: self in block あづみです。 masaki wrote: > > 例えば, > > > > 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 > となります。 これだと Foo のインスタンスメソッドをブロック内から呼ぶ場合に a を指定 しないといけなくなりませんか? private なメソッドの場合、呼び出し不可能 になるんじゃないかなと思います。 安積伸弥 adzumi@denpa.org