变量引用
一个变量就是一个值的名字。
通过赋值表达式可以创建变量并对其赋值。
当一个变量名不是出现在赋值操作的左侧时,它就是一个变量引用表达式,而且会被求值成该变量的值。
one=1.0 # 赋值
one # 求值 1.0
1、未初始化的变量
使用变量前对其初始化
有些情况下,允许你使用没有被初始化的变量。
类变量
在使用类变量之前,必须对其进行赋值。未被赋值,引用,抛出NameError
实例变量
未被初始化的实例变量,Ruby返回nil
-w 会发出警告
全局变量
类似实例变量
-w 会发出警告
局部变量
没有一个标点符号作为前缀,
意味着局部变量引用看起来像方法调用表达式一样。
如果Ruby解释器遇见了一个对局部变量的赋值操作,它就会知道等号左侧的是一个变量而不是一个方法调用,而且返回这个局部变量的值 。如果不是赋值操作,那么Ruby就会将这样的表达式当成方法调用。
如果没有方法匹配那个名字,Ruby抛出NameError
总的来说,试图在一个局部变量被初始化之前就使用它会导致一个错误。
2011-4-8 15:01 danny
一个变量就是一个值的名字。
通过赋值表达式可以创建变量并对其赋值。
当一个变量名不是出现在赋值操作的左侧时,它就是一个变量引用表达式,而且会被求值成该变量的值。
one=1.0 # 赋值
one # 求值 1.0
1、未初始化的变量
使用变量前对其初始化
有些情况下,允许你使用没有被初始化的变量。
类变量
在使用类变量之前,必须对其进行赋值。未被赋值,引用,抛出NameError
实例变量
未被初始化的实例变量,Ruby返回nil
-w 会发出警告
全局变量
类似实例变量
-w 会发出警告
局部变量
没有一个标点符号作为前缀,
意味着局部变量引用看起来像方法调用表达式一样。
如果Ruby解释器遇见了一个对局部变量的赋值操作,它就会知道等号左侧的是一个变量而不是一个方法调用,而且返回这个局部变量的值 。如果不是赋值操作,那么Ruby就会将这样的表达式当成方法调用。
如果没有方法匹配那个名字,Ruby抛出NameError
总的来说,试图在一个局部变量被初始化之前就使用它会导致一个错误。
2011-4-8 15:01 danny