推荐答案
在 Ruby 中,可以通过以下方法获取对象的信息:
#class方法:获取对象的类。#inspect方法:返回对象的可读字符串表示。#methods方法:获取对象的所有公共方法。#instance_variables方法:获取对象的所有实例变量。#respond_to?方法:检查对象是否响应某个方法。
示例代码:
// www.javascriptcn.com code example
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age
end
end
person = Person.new("Alice", 30)
puts person.class # => Person
puts person.inspect # => #<Person:0x00007f8e1a0b8e80 @name="Alice", @age=30>
puts person.methods # => 列出所有公共方法
puts person.instance_variables # => [:@name, :@age]
puts person.respond_to?(:name) # => true本题详细解读
#class 方法
#class 方法返回对象的类。例如,person.class 返回 Person,表示 person 是 Person 类的实例。
#inspect 方法
#inspect 方法返回对象的可读字符串表示,通常用于调试。它会显示对象的类名、内存地址以及实例变量的值。
#methods 方法
#methods 方法返回对象的所有公共方法,包括继承自父类的方法。可以通过 #methods(false) 只获取对象自身定义的方法。
#instance_variables 方法
#instance_variables 方法返回对象的所有实例变量,以符号形式表示。例如,[:@name, :@age] 表示对象有两个实例变量 @name 和 @age。
#respond_to? 方法
#respond_to? 方法用于检查对象是否响应某个方法。例如,person.respond_to?(:name) 返回 true,表示 person 对象有 name 方法。
通过这些方法,可以全面了解 Ruby 对象的结构和行为。