如何查看ruby中对象的所有可用方法。当我输入File时,我正在使用aptana IDE。没有显示任何方法。我来自eclipse / java背景。
由于
答案 0 :(得分:23)
有几种方法:
obj.methods
obj.public_methods
obj.private_methods
obj.protected_methods
obj.singleton_methods
<强>更新强>
要使对象方法与所有继承的方法区分开来,您可以这样做:
obj.methods(假)
正如Tempus在评论中提到的,以下命令非常有助于将当前对象方法与Object(基类)继承的方法区分开来:
obj.methods - Object.methods
答案 1 :(得分:4)
如果要忽略超类中定义的方法,可以将true
传递给方法:
obj.methods(true)
obj.public_methods(true)
obj.private_methods(true)
obj.protected_methods(true)
obj.singleton_methods(true)
或者,如果您只想删除Object
类中定义的最常用方法,则要添加- Object.methods
或- Object.instance_methods
,具体取决于{{1}是类的类或实例。
答案 2 :(得分:3)
如果您正在运行Ruby解释器,<object>.methods
将显示该对象的可用方法。在Eclipse中,当我输入File.
时,在我执行内容辅助命令(CTRL +空格)之前没有任何事情发生。那时我确实得到了一系列方法。
答案 3 :(得分:3)
我还要注意obj.methods
不会返回已排序的方法名称,因此您可能希望执行obj.methods.sort
。
答案 4 :(得分:2)
您可以在交互式Ruby解释器中调用File.methods
以查看所有可用的方法。我不确定你使用的IDE是否有办法,因为我之前没有使用它。