[ruby-list:39040] 内包オブジェクトがnilになったら自分もnilになるには?

From: Yac <yac@...>
Date: 2004-01-13 15:56:26 UTC
List: ruby-list #39040
岡といいます。こんにちは。

あるオブジェクトを内包するオブジェクトがあります。
内包しているオブジェクトがnilになったら、自分もnilになってほしいのです
が、どのように書いたらいいでしょうか。
コードで示すと、こんな感じです。
Test#removeで@raw_obj をnilにした後は、testが指すオブジェクトがnilになっ
て欲しいのです。
自分ではいろいろ調べたつもりなのですが、見つけられませんでした。

class Test
def initialize()
@raw_obj = {}
end

def [](item_name)
@raw_obj[item_name]
end

def []=(item_name, value)
@raw_obj[item_name] = value
end

def remove
@raw_obj = nil
# この後、自分もnilになりたい
# self = nil と書いたら怒られた
end
end

test = Test.new
test["name"] = "名前"
p test["name"] # => "名前"
test.remove
p test # これをnilにしたい

実際にやりたいことは、@raw_objにExcelのワークシートを指すWIN32OLEオブ
ジェクトを入れておき、
remove()でワークシートを削除した後は、自分もnilになりたいわけです。

/OKA




In This Thread

Prev Next