11

如何在 ruby​​ 中查看对象的所有可用方法。我在输入 File 时使用的是 aptana IDE。没有显示任何方法。我来自 eclipse/java 背景。

谢谢

4

5 回答 5

23

有几种方法:

obj.methods
obj.public_methods
obj.private_methods
obj.protected_methods
obj.singleton_methods

更新

  1. 要将对象方法与所有继承的方法分开,您可以执行以下操作:

    obj.methods(假)

  2. 正如评论中提到的 Tempus 一样,以下命令对于将当前对象方法与 Object(基类)继承方法区分开来非常有帮助:

    obj.methods - 对象.methods

于 2009-12-14T16:23:51.880 回答
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,具体取决于obj是类还是类的实例。

于 2009-12-14T16:54:30.523 回答
3

如果你有一个 Ruby 解释器正在运行,<object>.methods它将显示对象上的可用方法。在 Eclipse 中,当我键入内容时,File.什么都没有发生,直到我执行了 Content Assist 命令(CTRL+空格)。那时我确实得到了一个方法列表。

于 2009-12-14T16:25:28.680 回答
3

我还要注意,obj.methods它不会返回已排序的方法名称,因此您可能想要执行obj.methods.sort.

于 2009-12-14T16:59:16.820 回答
2

您可以File.methods在交互式 Ruby 解释器中调用以查看所有可用的方法。我不确定您正在使用的 IDE 中是否有办法,因为我以前没有使用过。

于 2009-12-14T16:19:45.053 回答