LoginSignup
0
0

More than 5 years have passed since last update.

特異クラスについてメモ

Posted at

特異クラスとは

  • 継承階層に含まれている名前のない不可視クラス
  • インスタンスは生成できない
  • クラスメソッドやモジュールから取り込んだメソッドを格納する場所を提供

確認

# クラスメソッド定義時に、クラスの特異クラスが自動生成されメソッドが定義されることの確認

class MyClass
  def self.hoge
  end
end

# singleton_classで特異クラスを取得できる
p MyClass.singleton_class.instance_methods(false) 
# => hoge

# インスタンスに特異メソッド定義時に、インスタンスの特異クラスが自動生成されメソッドが定義されることの確認
a = MyClass.new
def a.fuga
end

# singleton_classで特異クラスを取得できる     
p a.singleton_class.instance_methods(false)
# => fuga
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0