要約
Ruby の内部オブジェクトをラップするクラスです。
内部オブジェクトとは、include したモジュールを表す iclass(T_ICLASS)のように、CRuby の実装の都合で作られ、通常は Ruby のコードからは直接見えないオブジェクトです。
ObjectSpace?.reachable_objects_from と ObjectSpace?.reachable_objects_from_root は、到達できるオブジェクトが内部オブジェクトのときにこのクラスのインスタンスを返します。ObjectSpace?.internal_super_of など他の ObjectSpace のメソッドもラップされた内部オブジェクトを返すことがあります。
このクラスはデバッグやイントロスペクションのためのものです。アプリケーションのコードでは使わないでください。ラップされるオブジェクトやこのクラスの詳細は処理系に依存し、将来のバージョンで変更される可能性があります。
目次
- インスタンスメソッド
インスタンスメソッド
inspect -> StringRuby 3.0 から[permalink][rdoc][edit]-
ラップしている内部オブジェクトの型とアドレスを含む、人間が読みやすい形式の文字列を返します。
例require 'objspace' module M; end class A; include M; end p ObjectSpace.internal_super_of(A) # => #<InternalObject:0x... T_ICLASS> internal_object_id -> IntegerRuby 3.0 から[permalink][rdoc][edit]-
ラップしている内部オブジェクトの Object#object_id を返します。
この値は
ObjectSpace::InternalObjectWrapperのインスタンスではなく、ラップされている内部オブジェクトを識別するものです。デバッグやイントロスペクションにだけ使ってください。内部オブジェクトの object_id は処理系に依存します。 type -> SymbolRuby 3.0 から[permalink][rdoc][edit]-
ラップしている内部オブジェクトの型をシンボルで返します。
例えば、include したモジュールは内部的には
例T_ICLASSのオブジェクトとして表現されています。require 'objspace' module M; end class A; include M; end iclass = ObjectSpace.internal_super_of(A) p iclass.type # => :T_ICLASS返されるシンボルの集合は処理系に依存します。