在Ruby中,检索Class.new(一个实例)的返回值的具体方法是什么?

时间:2016-10-29 19:05:41

标签: ruby class

鉴于以下代码:

class Animal 
end

dog = Animal.new # --> return value of Animal.new

检索Animal.new的返回值有哪些具体方法?我知道从Animal类创建了一个新实例并将其分配给变量dog。但是检索Animal.new的返回值的方法是什么?

3 个答案:

答案 0 :(得分:3)

根据文档here

  

new(args,...)→obj

     

调用allocate创建类的类的新对象,然后调用   该对象的initialize方法,将其传递给 args 。这是方法   每当使用构造对象时,最终会被调用   .new

答案 1 :(得分:2)

您可以在irb中自行测试。它返回该对象的一个​​实例。

# Instantiating a new instance of a class
irb(main):001:0> Class.new
=> #<Class:0x007fe24193c918>

# Assigning a new instance of a class to a variable
irb(main):005:0> some_var = Class.new
=> #<Class:0x007fe2410e68b8>
irb(main):006:0> some_var
=> #<Class:0x007fe2410e68b8>

答案 2 :(得分:0)

class A  
end

调用a = A.new返回类A的新对象,字符串显示为例如#<A:0x00000002d8eb98>是包含来自inspect方法的默认实现的对象的人类可读表示的字符串。每次创建新对象时调用。

默认inspect显示对象的类名,对象id的编码以及实例变量及其值的列表用户自定义类例如A应该/建议覆盖此方法以更好地表示它们的对象,例如

class A
  def inspect
    "I am what i am"
  end
end

b = A.new 

打印 - &gt; I am what i am不是十六进制值