From: Wakou Aoyama Date: 1999-06-24T17:30:35+09:00 Subject: [ruby-list:15106] Re: delegate.rb 青山です。 Thu, Jun 24, 1999 at 05:15:48PM +0900 において Yukihiro Matsumoto さん曰く: > ここでdelegateの対象になったのは @params という変数ではなく、 > 「その瞬間に @params に格納されていたハッシュ」です。ですか > ら、@paramsの値が変わってもdelegate先は変わらないわけです。 そうなんですよね。名前ではなく、オブジェクトとして扱われているのですか ら、代入をしたら関係がおかしくなるのは当然という気もしていました。 > というわけで、もし query.params = {...} の内容を反映させたけ > れば、 > > def params=(hash) > @params.update(hash) > end > > とか、あるいは > > def params=(hash) > # hashの型チェックをした方が良い.. > @obj = hash > end > > のような明示的な更新が必要でしょう。 ああ、なるほど。= の再定義という手がありましたか。(なんと強力というか、 便利な言語なのだろう) -- 青山 和光 Wakou Aoyama