From: matz@... (Yukihiro Matsumoto) Date: 1999-06-23T13:33:55+09:00 Subject: [ruby-dev:7190] Re: WeakRef? まつもと ゆきひろです In message "[ruby-dev:7174] WeakRef?" on 99/06/23, Kazuhiro HIWADA writes: |weakref_set_fi...に渡している{ self.assign(k, nil) }というブロックから |v の値に何らかのリファレンスがあるのだろうかとか推測してますが、「v = |nil」ってのは、必要なものでしょうか?。それとも実はこんなスクリプトは |書いてはいけなくて、偶然動いてしまったのでしょうか ^^;;;。 ブロックはカレントスコープに対する参照を持っていて、カレント スコープがvを通じてvalueに参照があるので一生ゴミにならないと いうfinalizerにありがちな問題なのだと思います。 この場合には v = nil でよろしいのではないでしょうか? まつもと ゆきひろ /:|}