methodメソッド
methodメソッドを使うと、メソッドオブジェクトを得ることができます。得るメソッドは名前で指定します。
p 1.method(:nil?) #=> #<Method: Fixnum(Kernel)#nil?> p nil.method(:nil?) #=> #<Method: NilClass#nil?>
得たメソッドのアリティ、文字列表現、呼び出しは以下の通り。
p nil.method(:nil?).arity #=> 0 p nil.method(:nil?).inspect #=> "#<Method: NilClass#nil?>" p nil.method(:nil?).call #=> true
to_procでProcにしてからcallすることもできる。
p nil.method(:nil?).to_proc.call #=> true
もう何がなにやら。
p nil.method(:method).call(:nil?).to_proc.call #=> true p nil.method(:method).to_proc.call(:method).to_proc.call(:nil?).to_proc.call #=> true