我學習Ruby和還沒有找到一種方法來覆蓋等效object.delete
功能的缺失運行方式:上的對象
這是怎麼了,我這樣做:
class Foo
@@no_foo=0
def initialize
@@no_foo+=1
end
def delete
#class specific cleanup...
@@no_foo-=1
end
def Foo.no_foo
return "#@@no_foo"
end
end
def delete(obj)
#object independent cleanup...
obj.delete
return nil
end
foo1 = Foo.new
foo2 = Foo.new
puts Foo.no_foo
puts foo2
foo2 = delete(foo2)
puts foo2
puts Foo.no_foo
正如你可以看到,這是一個有點冒險的方式去做事情... 有沒有更簡單的方法來解決這個問題?
基本上我想讓我的對象在同一個調用中不可訪問,就像減少那個類的總計數器一樣。 我無法找到將變量(指向對象的指針)設置爲nil時調用的方法。
我發現沒有辦法刪除一個對象。
我不明白,你有什麼具體的要求。但你可以看看這裏 - ['WeakRef'](http://www.ruby-doc.org/stdlib-2.0/libdoc/weakref/rdoc/WeakRef.html)。 –
@Ruby喜歡,WeakRef似乎是最簡單的方法來完成我想要實現的。 – hamhut1066
好的!那就好!因此,如果該庫幫助您實現目標,那麼請在此處發佈最終代碼,以便將來的用戶可以通過查看它的優勢。 –