Ruby中的变量有几种形式,分别是局部变量、实例变量、类变量、全局变量,对于初学者来说,常常容易搞混,尤其像本人这种做java的,理解起来还是头痛,经过仔细辨别学习,将这几种变量的差异及使用场景总结如下:
一、命名方式
1.局部变量:小写字母或者“_”开头,如user,解释器解释到时才开始在内存中存在,一个良好的习惯是在进行变量定义时用nil进行赋值初始化,否则会出现类似undefined local variable or method `z’的错误;
2.实例变量:开头,如user,默认初始
Proc是对块及其context(局部变量的作用域以及栈框架)进行对象化处理之后得到的过程对象。您可以像使用无名函数那样来使用Proc,但它不会导入局部变量的作用域(可以把动态局部变量用作Proc局部变量)。
在下例中,正因为Proc一直保持着局部变量的作用域,所以才能调用var变量。
var = 1
$foo = Proc.new { var }
var = 2
def foo
$foo.call
end
p foo # => 2
从生成Proc的方法中返回以后,若Proc中
变量分配
目标
分配局部变量。
指示
您将分配一个名为greeting的局部变量,该变量等于"Hello World" 。
您首先应通过运行learn test来确保测试套件正常运行。
在第一次运行测试套件时,您应该看到:
Failures:
1) ./variable.rb defined a local variable called greeting and set it equal to 'Hello World'
Failure/Error: greeting =
变量分配
目标
分配局部变量。
指示
您将分配一个名为greeting的局部变量,该变量等于"Hello World" 。
您首先应通过运行learn test来确保测试套件正常运行。
在第一次运行测试套件时,您应该看到:
Failures:
1) ./variable.rb defined a local variable called greeting and set it equal to 'Hello World'
Failure/Error: greeting =
变量分配
目标
分配局部变量。
指示
您将分配一个名为greeting的局部变量,该变量等于"Hello World" 。
您首先应该通过运行learn来确保测试套件正确运行。
在第一次运行测试套件时,您应该看到:
Failures:
1) ./variable.rb defined a local variable called greeting and set it equal to 'Hello World'
Failure/Error: greeting = get_
变量分配
目标
分配局部变量。
指示
您将分配一个名为greeting的局部变量,该变量等于"Hello World" 。
您首先应该通过运行learn来确保测试套件正确运行。
在首次运行测试套件时,您应该看到:
Failures:
1) ./variable.rb defined a local variable called greeting and set it equal to 'Hello World'
Failure/Error: greeting = get_v