ruby / irb获取方法的范围信息

问题描述 投票:-1回答:1

IRB可以告诉我类/对象/变量/方法的范围吗?

例如puts

我想象像describe puts这样的东西会输出信息,这些信息是一个对象的方法,也许是它的源位置。

ruby reflection
1个回答
0
投票

对于在Kernel / Object上定义的方法,可以简单地使用:

method :puts
#⇒ #<Method: Object(Kernel)#puts> 

对于未包含在任何位置的模块/类上定义的方法,需要完全限定名称:

Integer.instance_method :to_s
#⇒ #<UnboundMethod: Integer#to_s> 

对于在ruby中定义的方法(不在中),也可以查询源位置:

URI.method(:split).source_location
#⇒ ["/path_to_ruby/uri/common.rb", 192] 
© www.soinside.com 2019 - 2024. All rights reserved.