Ruby 4.0 リファレンスマニュアル

class ObjectSpace::InternalObjectWrapper

[edit]

要約

Ruby の内部オブジェクトをラップするクラスです。

内部オブジェクトとは、include したモジュールを表す iclass(T_ICLASS)のように、CRuby の実装の都合で作られ、通常は Ruby のコードからは直接見えないオブジェクトです。

ObjectSpace?.reachable_objects_fromObjectSpace?.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

返されるシンボルの集合は処理系に依存します。