鉴于以下代码:
class Animal
end
dog = Animal.new # --> return value of Animal.new
检索Animal.new的返回值有哪些具体方法?我知道从Animal类创建了一个新实例并将其分配给变量dog。但是检索Animal.new的返回值的方法是什么?
答案 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
不是十六进制值