Dan*_*Tao 3 ruby scope instance-variables
我几乎从来没有在Ruby代码中看到过这个,但它似乎是有效的:
class Foo
@bar = "bar"
def self.print_bar
puts @bar
end
end
Run Code Online (Sandbox Code Playgroud)
我对上面的解释@bar是一个实例变量Foo,它是一个单例(?)实例Class.
这看起来与类变量(例如@@baz)不同,类变量可以在类范围以及实例范围中访问.
什么,如果有的话,像上面代码片段的代码的缺点?还是完全合理的代码?
是的,这是完全有效的.它也被广泛使用,并且通常推荐使用具有非常大范围的类变量(类,类的所有实例,所有子类,所有子类的所有实例,......).
没有缺点.类是对象.对象可以包含实例变量.什么都没有.Ruby的对象模型确实是很多人相比,甚至红宝石教程的作者简单,会让你宁愿相信.
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |