特異クラスの特異クラス
特異クラスの定義中にselfをグローバル変数に保存して、「特異クラスの特異クラスの…」を繰り返してみたくなりました。スーパークラスをたどるようにどこかでルートにたどり着くのでしょうか(わざとらしい問いかけ)。
class Rubyco end $obj = Rubyco 1.upto(5) do puts $obj class <<$obj $obj = self end end
実行結果です。
Rubyco #<Class:Rubyco> #<Class:#<Class:Rubyco>> #<Class:#<Class:#<Class:Rubyco>>> #<Class:#<Class:#<Class:#<Class:Rubyco>>>>
いくらでもたどれそうですね。