Ruby 中变量有:局部变量,全局变量,实例变量和类变量局部变量:这个好说,哪里定义哪里使用,超出范围就不能用。作用域是静态确定,但动态创建。全局变量:整个项目的变量,所有地方都可以使用。跟 Java 里 config 比较类似。实例变量:被类的所有实例方法所共享。类的每个实例都有一组独特的实例变量。类变量:贯穿类或模块体的变量,被定义该变量的类及其所有子类所共享。
实例变量和类变量比较: 实例变量:
是类的每个对象自己方法的共享,相当于Java中的非静态属性,本对象不能访问另一个对象中同名变量。
使用前不一定要初始化,但为初始化的变量返回 nil 对象。
如对本人(对象)计数时,可以用实例变量。例如:文章被我(本人)阅读的次数。类变量:
相当于 Java 中 public、static 属性,所有该类对象(包括子类)都可以共用该变量。
使用前必须初始化。
如对共有物(对象)计数时,可以用类变量。例如:文章被不同人阅读的总次数。