🖥

Rubyのクラスメソッドはシングルトンメソッド=特異メソッドである (メタプログラミングRuby)

2023/08/26に公開

Rubyではクラス自体にメソッドを定義できる。

定義したクラスに

class A
end

メソッドを生やすと

def A.some_method
end

クラスがメソッドを実行できるようになる

A.some_method # nil

とてもシンプルな話だ。
これがクラスメソッドと呼ばれる。

一般的なクラスメソッドの定義

クラス定義の中では、 self はクラス自身を示す。
つまり次の書き方は、最初の例と同義だ。

class A
  def self.some_method # あとで def A.some_method と書くのと同じ
  end
end

余談

日本語ではシングルトンメソッドが「特異メソッド」と呼ばれているが、、なんだか混乱するような気もする。あまり特異な感じがしない。

元の英語では Singleton Method
こちらの呼び方の方がスッキリした理解ができそうだ。

参考

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2018-06-02

Discussion