Spec-Zone.ru › Ruby 3

класс WeakRef

Родитель:
Delegator

Класс слабой ссылки, который позволяет объекту, на который она ссылается, быть удалённым сборщиком мусора.

Слабая ссылка может быть использована точно так же, как и объект, на который она ссылается.

Использование:

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) Показать исходный код
# 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

Общедоступные методы экземпляра

weakref_alive?() Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API