Ruby语言入门(5)- 变量
上一篇 /
下一篇 2013-01-29 14:51:42
/ 个人分类:语言
局部变量
标识符首位是小写字母或“_”,则该变量就是局部变量。
局部变量的作用域起始于声明处,结束于该声明所在的块、方法定义、类/模块定义的结尾。
但也有例外。若块已经变成过程对象的话,则局部变量将一直持续到该过程对象终结为止。若多个过程对象引用同一个作用域的话,局部变量将被这些对象所共享。
实例变量
以@开始的变量是实例变量,它属于特定的对象。可以在类或子类的方法中引用实例变量。若引用尚未被初始化的实例变量的话,其值为nil。
类变量
以@@开始的变量是类变量。在类的定义中定义类变量,可以在类的特殊方法、实例方法等处对类变量进行引用/赋值。类变量可以被当作被类、子类以及它们的实例所共享的限制性全局变量。
全局变量
以$开始的变量是全局变量,可以在程序的任何地方加以引用(因此需要特别留意)。全局变量无需变量声明。引用尚未初始化的全局变量时,其值为 nil。
伪变量
除普通的变量之外,还有一种叫做伪变量的特殊变量。
self 当前方法的执行主体
nil NilClass类的唯一实例
true TrueClass类的唯一实例
false FalseClass类的唯一实例。nil 和 false 表示“伪”。
__FILE__ 当前源文件名
__LINE__ 当前源文件中的行号
伪变量的值不可改变,若对伪变量赋值将引发语法错误。
常数
以大写字母([A-Z])开始的标识符是常数.常数的定义(和初始化)由赋值过程完成.不能在方法中对常数进行定义.若对已定义的常数进行赋值的话,会出现警告信息.若引用未定义的常数的话,则会引发NameError异常.
类变量与常数的区别
类变量可以重复赋值,常数不能。
类变量不能在类的外部直接引用,只能在其继承类中引用/赋值。
常熟可以在类的外部直接引用。
类变量与实例变量的区别
类变量可在子类中引用/赋值,而实例变量只能被引用。
类变量可在类实例的方法中引用/赋值,而实例变量只能被引用。
收藏
举报
TAG: