Ruby 如何获取方法的方法对象?
我正试图按照以下方式扩展Method类:Ruby 如何获取方法的方法对象?,ruby,Ruby,我正试图按照以下方式扩展Method类: irb(main):008:0> class A irb(main):009:1> def a irb(main):010:2> puts "blah" irb(main):011:2> end irb(main):012:1> end => nil irb(main):013:0> class Method irb(main):014:1> def aa irb(main):015:2> p "hi
irb(main):008:0> class A
irb(main):009:1> def a
irb(main):010:2> puts "blah"
irb(main):011:2> end
irb(main):012:1> end
=> nil
irb(main):013:0> class Method
irb(main):014:1> def aa
irb(main):015:2> p "hi"
irb(main):016:2> end
irb(main):017:1> end
=> nil
irb(main):018:0> f = A.new
=> #<A:0x54ed4>
irb(main):019:0> A.a
NoMethodError: undefined method `a' for A:Class
from (irb):19
from :0
irb(main):020:0> f.a
blah
=> nil
irb(main):027:0> f.a.aa
blah
NoMethodError: undefined method `aa' for nil:NilClass
from (irb):27
from :0
irb(main):008:0>A类
irb(主):009:1>def a
irb(主要):010:2>放“废话”
irb(主):011:2>结束
irb(主):012:1>结束
=>零
irb(主):013:0>类方法
irb(主):014:1>def aa
irb(主):015:2>p“hi”
irb(主):016:2>结束
irb(主):017:1>结束
=>零
irb(主):018:0>f=A
=> #
irb(主):019:0>A.A
NoMethodError:a:类的未定义方法“a”
来自(irb):19
起:0
irb(主要):020:0>f.a
废话
=>零
irb(主要):027:0>f.a.aa
废话
NoMethodError:nil:NilClass的未定义方法“aa”
起始(irb):27
起:0
正如所料,当If.a.aa
时,.aa
将在f.a
的返回值上执行。我如何获得对表示f.a
的方法对象的访问权限?使用方法…=)
我不知道这种方法的存在。方便的谢谢。@squegy:你只需要在研究中有方法论就行了。:)
f.method(:a).aa