クラスはクラスクラスのインスタンス

ながのRubyの会 #1

2017/12/02

とみたまさひろ

Rubyはほぼすべてがオブジェクト

クラスもオブジェクト

String.class  #=> Class

Class クラス

  • クラスは Class クラスのインスタンス

  • Class.new でクラスを作ることができる

Class.new

Hoge = Class.new

# これと同じ

class Hoge
end

クラス名

定数に代入するまでは名無しクラス

a = Class.new  #=> #<Class:0x00560d27bf2108>
Hoge = a       #=> Hoge
Fuga = a       #=> Hoge
a              #=> Hoge

カオス

a           #=> Hoge
Object.instance_eval{remove_const :Hoge}
Hoge        #=> uninitialized constatnt Hoge
a           #=> Hoge
class Hoge; end
a == Hoge   #=> false