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:

 

评分:0

我来说两句

日历

« 2024-04-18  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 150440
  • 日志数: 185
  • 文件数: 6
  • 建立时间: 2007-08-06
  • 更新时间: 2015-01-06

RSS订阅

Open Toolbar