Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > weakrefライブラリ > WeakRefクラス

class WeakRef

クラスの継承リスト: WeakRef < Delegator < Object < Kernel < BasicObject

要約

weak reference を実現するクラスです。

WeakRef オブジェクトは与えられたオブジェクトをポイントしますが、 ポイント先のオブジェクトは GC される可能性があります。 アクセスしようとしたときにオブジェクトが GC されていれば WeakRef::RefError が発生します。

delegate も参照してください。

サンプルコード

require 'weakref'

foo = Object.new
ref = WeakRef.new(foo)
ref.some_method_of_foo

目次

特異メソッド
new
インスタンスメソッド
__getobj__ __setobj__ weakref_alive?

特異メソッド

new(orig) -> WeakRef[permalink][rdoc]

与えられたオブジェクトを使って自身を初期化します。

[PARAM] orig:
任意のオブジェクトを指定します。

インスタンスメソッド

__getobj__ -> object[permalink][rdoc]

自身の参照先のオブジェクトを返します。

[EXCEPTION] WeakRef::RefError:
GC 済みのオブジェクトを参照した場合に発生します。

[SEE_ALSO] delegate

__setobj__(obj) -> ()[permalink][rdoc]

与えられたオブジェクトを自身の参照先としてセットします。 内部用のメソッドなので使わないでください。

[PARAM] obj:
任意のオブジェクトを指定します。
weakref_alive? -> bool[permalink][rdoc]

参照先のオブジェクトがまだ生きていれば真を返します。 GC されていれば偽を返します。