プログラミング的なSomething

読者です 読者をやめる 読者になる 読者になる

プログラミング的なSomething

ITエンジニア(?)目線で生活・自転車・トレーニング話を綴ります

オブジェクトにメソッドを取り込む

Ruby パーフェクトRuby

特定のオブジェクトにだけ振る舞いを与える

モジュールに定義されたメソッドはextendメソッドを用いて、オブジェクトの特異メソッドとして取り込むことができる。

module Greetable
  def greet_to(name)
    puts name
  end
end

o = Object.new
o.extend Greetable
o.greet_to "hoge" #=> hoge

oというオブジェクトに対してGreetableモジュールをextendします。

クラス定義内でモジュールをextendすると、メソッドをクラスメソッドとして取り込むことができる。

class Alice
  extend Greetable
end

Alice.greet_to "hoge" #=> hoge
広告を非表示にする