0
Help us understand the problem. What are the problem?

posted at

【Ruby】特異メソッドについて

特異メソッドについて

class C
  class << C
    def hoge
      'Hi'
    end
  end

  def hoge
    'Goodbye'
  end
end

p C.new.hoge
"Goodbye"

このように表示される。

p C.new.hoge

上記の記述では、インスタンスを作成してその中のメソッドを呼び出ししているため"Goodbye"と表示される。

特異メソッドの宣言方法

特異メソッドの宣言方法には2つあるらしい。

## 1つめ
  class << C
    def hoge
      'Hi'
    end
  end

## 2つめ
  def C.hoge
    'Hi'
  end

このように2つの宣言方法があるらしい。

そしてこの特異メソッドを呼び出したい時は、p C.hogeというようにすればいい。
そうするとHiと表示される。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?