Ruby のメソッドオブジェクトとは?
メソッドオブジェクトって、あれなんだっけ?
となったのでメモっておきます。
一言で言えばメソッドオブジェクトとは、
メソッドをオブジェクトのように扱えるようにしたものです。
そのまんますぎ、
なので、
ちょっと例を書いてみます。
class Dog def bark puts 'wan!' end end dog = Dog.new bark_wan = dog.method(:bark) # メソッドオブジェクトを取得 # メソッドを書き換える class Dog def bark puts 'bowwow!' end end dog.bark # => bowwow! bark_wan.call # => wan! # 得意メソッドとして書き換える def dog.bark puts 'kyankyan!' end dog.bark # => kyankyan! bark_wan.call # => wan!
こちらもどうぞ