类 WeakRef
弱引用类,允许被引用的对象被垃圾回收。
一个 WeakRef
可以像引用对象一样使用。
用法
foo = Object.new # create a new object instance p foo.to_s # original's class foo = WeakRef.new(foo) # reassign foo with WeakRef instance p foo.to_s # should be same class GC.start # start the garbage collector p foo.to_s # should raise exception (recycled)
常量
- VERSION
公共类方法
new(orig) 点击切换源代码
创建一个指向 orig
的弱引用。
调用父类方法
Delegator::new
# File lib/weakref.rb, line 34 def initialize(orig) case orig when true, false, nil @delegate_sd_obj = orig else @@__map[self] = orig end super end
公共实例方法
weakref_alive?() 点击切换源代码
如果引用的对象仍然存在,则返回 true。
# File lib/weakref.rb, line 55 def weakref_alive? @@__map.key?(self) or defined?(@delegate_sd_obj) end