Ruby有三类变量,一种常量和两种严格意义上的伪变量(pseudo-variables).变量和常量都没有类型.虽然无类型变量存在一定的缺点,但却有更多的优点并很好的符合Ruby快速简便(quickandeasy)的哲学精神.
在大多数语言里,变量都必须指定其类型,可更改性(是不是个常数)和范围;由于类型的不存在,剩下的东西也可由变量名字很快确定(你马上会看见),在Ruby里我们不需要变量声明.
由首字母标识符将其分类:
$全局变量
@实变量
[a-z]局部变量
[A-Z]常量
唯一的例外是Ruby的伪变量:self,它永远指向当前正执行着的对象或未初始化变量的空值(meaninglessvalue)nil.虽然这两者的命名都像是局部变量,但self却是个由解释器把持的全局变量,而nil实际上是个常量.既然只有这两种意外,他们并不会过多的干扰我们.
你并能向self或nil赋值.下面的例子中,main作为self的值,指向最高层的对象:
ruby>self
main
ruby>nil
nil