class Something
@b = [4432]
def screen
puts @b.class
end
end
s = Something.new
s.screen
Run Code Online (Sandbox Code Playgroud)
输出'Nilclass'.想知道,为什么在类中定义的实例变量总是NilClass的一部分?
Jör*_*tag 10
实例变量属于一个对象(也就是一个实例),这就是它们被称为实例变量的原因.每个实例都有自己的实例变量.
在您的情况下,有两个对象:( Something它是一个实例Class)和s(它是一个实例Something).这两个对象中的每一个都有自己的一组实例变量.Something有一个名为的实例变量@b指向[4432].s没有命名的实例变量,@b因为您从未分配它,未初始化的实例变量计算到nil.