特異メソッドを定義する
Rubyではクラスだけなくあるオブジェクトに固有なメソッドを定義することができる。
そのようなメソッドのことを特異メソッドと呼ぶ。
以下はobj
に特異メソッドsingleton_method
を定義する例である。
特異メソッドは通常のメソッドと同じように呼び出すことができる。
obj = Object.new def obj.singleton_method() # do something end obj.singleton_method
複数の特異メソッドを定義する場合は、以下のように書くことができる。
このような書き方を、obj
の特異クラスを開く、と呼ぶ場合もある。
obj = Object.new class << obj def singleton_method1() # do something end def singleton_method2() # do something end end obj.singleton_method1 obj.singleton_method2