class Something
@b = [4432]
def screen
puts @b.class
end
end
s = Something.new
s.screen
输出'Nilclass'。想知道,为什么在类内部定义的实例变量始终是NilClass的一部分?
实例变量属于对象(又称实例),这就是为什么它们被称为实例变量。每个实例都有自己的实例变量。
在您的情况下,有两个对象:(Something
是的一个实例Class
)和s
(是的一个实例Something
)。这两个对象中的每一个都有其自己的实例变量集。Something
有一个名为的实例变量@b
,它指向[4432]
。s
没有命名实例变量,@b
因为您从未分配它,并且未初始化的实例变量的计算结果为nil
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句