LoginSignup
2
1

More than 1 year has passed since last update.

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

Last updated at Posted at 2018-06-02

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オープンチャットもご利用ください。

Twitter

2
1
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
2
1