Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何获取方法的方法对象?_Ruby - Fatal编程技术网

Ruby 如何获取方法的方法对象?

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

我正试图按照以下方式扩展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):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
正如所料,当I
f.a.aa
时,
.aa
将在
f.a
的返回值上执行。我如何获得对表示
f.a
的方法对象的访问权限?

使用方法…=)


我不知道这种方法的存在。方便的谢谢。@squegy:你只需要在研究中有方法论就行了。:)
f.method(:a).aa