From: Hidetoshi NAGAI Date: 2004-01-14T01:35:18+09:00 Subject: [ruby-list:39044] Re: 内包オブジェクトがnilになったら自分もnilになるには? 永井@知能.九工大です. From: Yac Subject: [ruby-list:39040] 内包オブジェクトがnilになったら自分もnilになるには? Date: Wed, 14 Jan 2004 00:56:26 +0900 Message-ID: <40041528.2050007@tech-notes.dyndns.org> > あるオブジェクトを内包するオブジェクトがあります。 > 内包しているオブジェクトがnilになったら、自分もnilになってほしいのです > が、どのように書いたらいいでしょうか。 オブジェクトが化けてしまうことは無理ですが, そうであるかのように振る舞うことは不可能ではないと思います. --------------------------------------- class HOGE undef_method(:inspect) def initialize() @raw_obj = {} end def method_missing(m, *args) @raw_obj.send(m, *args) end def remove @raw_obj = nil end end hoge = HOGE.new p hoge #=> {} hoge['name'] = "名前" p hoge #=> p hoge['name'] p hoge['name'] #=> "名前" hoge.remove p hoge #=> nil p hoge['name'] #=> 例外 (NoMethodError) 発生 --------------------------------------- 実際に求められる機能に応じて undef_method や メソッド定義を行えばよいのではないでしょうか. -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp