Ruby 如何查看对象类中的所有方法/属性

Ruby 如何查看对象类中的所有方法/属性,ruby,ruby-1.9,irb,Ruby,Ruby 1.9,Irb,我已经开始学习Rails 3.0,并决定花一些时间学习纯Ruby 1.9,我想知道是否有办法查看对象类,因为它总是可用的。例如,有一个可以在IRB中键入的命令,它将显示对象类中的所有方法,如to_a、to_s等。。感谢您的帮助#方法就是您想要的方法。它只返回一个符号数组,这些符号是对象响应的方法的所有名称 Object.new.methods 或在irb中更可读: puts Object.new.methods.sort.to_yaml 或对于类方法: Object.methods 不过

我已经开始学习Rails 3.0,并决定花一些时间学习纯Ruby 1.9,我想知道是否有办法查看对象类,因为它总是可用的。例如,有一个可以在IRB中键入的命令,它将显示对象类中的所有方法,如to_a、to_s等。。感谢您的帮助

#方法
就是您想要的方法。它只返回一个符号数组,这些符号是对象响应的方法的所有名称

Object.new.methods
或在irb中更可读:

puts Object.new.methods.sort.to_yaml
或对于类方法:

Object.methods

不过有一点需要注意,有些对象允许使用此处未列出的方法。任何使用
#method_中缺少的钩子实现的
都不会显示。这包括许多
ActiveRecord
方法以及其他rails对象


但是只要没有什么棘手的事情发生,这就是你想要的列表。

要查看对象的方法,你可以执行
你的对象。方法。对于类,这将是它的类方法。要查看类的实例方法,可以执行
您的类.instance\u方法
。因此,要列出Object的所有类方法,您需要执行
Object.methods
,要查看Object的所有实例方法,您需要执行
Object.instance\u methods

进一步提示:如果只想查看给定类实现的方法(而不是从其祖先继承的方法),可以将
false
作为参数传递给我前面提到的任一方法。例如,
String.instance\u methods(false)
将返回String实现的实例方法列表,但不会返回常规对象方法,如
dup
is\u?


但是,如果您想学习,查看给定类或类扩展(例如Rails添加到字符串或日期)的文档可能会更好。

Niggle:
方法
返回一个符号数组,而不是字符串。在ruby 1.8.7中,您会得到字符串,这是我最熟悉的。yea thanx非常有用,虽然没有人会理解我的问题,但thanksRuby是一种非常动态的语言,随之而来的是大量的反思(检查其自身的实现)。这是ruby获取对象组成信息的众多方法之一。