在Ruby中,为什么未初始化的实例变量返回nil
而未初始化的类变量引发了NameError
?
相比:
@some_uninitialized_variable # => nil
和:
@@some_uninitialized_class_variable # => NameError
我的看法如下:
未初始化的局部变量返回名称错误,因为Ruby不知道它是要用作局部变量还是不存在的方法。
如果nil
未定义的类变量在未定义时返回,则在nil
由远祖先为变量实际赋值时可能导致讨厌的错误。也就是说,我认为这是在保护编码器。
nil
如果经常使用的功能,则实例化变量默认为未初始化时@a = @a || []
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句