为什么在ruby中,当你对一个类进行initiazlize时你是否将实例变量设置为等同于同名的变量?
def initialize(number)
@number = number
end
答案 0 :(得分:3)
我们这样做是为了让新创建的对象(不是类!带有initialize和@vars,初始化刚刚用new()
方法创建的对象!)会记住number
的值。
尝试使用这个:
def initialize(number)
end
这会得到一个数字,但对它没有任何作用。当这个inializer结束时,创建的对象将不记得'number'是什么。
下面:
def initialize(number)
@foo = 5
@bar = number
end
新创建的对象将记住@foo中的5和@bar中的数字。
将@variable命名为参数的想法只是为了让它更容易。在上面的例子中,很难猜出bar
的含义。相反,如果我将@bar重命名为@number,那么很明显它会保留...数字。
def initialize(number) def initialize(number)
@bar = number <-same thing-> @number = number
end just different name end