メソッド定義内でselfがどう変化するのか調べた
クラスメソッドの中ではselfがクラスを指すことを知らなかったので、 メソッド定義内でのselfについて調べてみた。
def内のselfについて
- 通常のメソッド定義
class SampleClass self #=> SampleClass def instance_method self #=> SampleClassのインスタンス end end
class SampleClass class << self self #=> SampleClassの特異クラス def eigen_method self #=> SampleClass end end end
- 特異メソッドの定義
class SampleClass def self.eigen_method self #=> SampleClass end sample_obj = self.new def sample_obj.eigen_method self #=> sample_obj end end
上の例を見る限り、メソッド定義内でのselfについては、インスタンスメソッドの定義と特異メソッドの定義で分かれていて、
ということなのだと思う。