класс 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
Общедоступные методы класса
# File lib/weakref.rb, line 37
def initialize(orig)
case orig
when true, false, nil
@delegate_sd_obj = orig
else
@@__map[self] = orig
end
super
end Создаёт слабую ссылку на orig
Возбуждает исключение ArgumentError, если заданный orig является неизменяемым, например Symbol, Integer или Float.
Вызывает метод предка
Delegator::new Общедоступные методы экземпляра
# File lib/weakref.rb, line 58 def weakref_alive? @@__map.key?(self) or defined?(@delegate_sd_obj) end
Возвращает true, если объект, на который ссылаются, всё ещё существует.
Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.