Ruby中@@和@有什么区别?

时间:2013-06-13 22:09:09

标签: ruby class variables

我刚刚开始学习Ruby,我无法找到关于类变量方面@@和@之间区别的好解释。如果任何人都可以提供一个基本的直观示例,那将非常棒。它们也可以互换吗?

2 个答案:

答案 0 :(得分:11)

@在变量名之前:实例变量(每个实例一个)

变量名之前的@@:静态变量(每个类一个)

答案 1 :(得分:9)

前缀为@@的变量是类变量,前缀为@的变量是实例变量。在这个答案中可以找到一个很好的描述:https://stackoverflow.com/a/5890199/1181886