Ruby中块内部的阴影外部变量

Ruby中块内部的阴影外部变量,ruby,Ruby,我有: 以及使用相同名称变量的块: variable = 1 是否有办法避免更改外部变量(阴影?是!自从Ruby 1.9以来,Ruby引入了块局部变量,任何变量前面都有将不受影响。但这不好,请考虑在块中使用另一个名称。< /P> [*1..10].each do |n| ... variable = 2 end 但即使我不放它仍然存在。试试这个variable=1[*1..10]。每个do | n,variable | variable=2 end-put变量使用分号定义块局部变量显

我有:

以及使用相同名称变量的块:

variable = 1

是否有办法避免更改外部变量(阴影?

是!自从Ruby 1.9以来,Ruby引入了块局部变量,任何变量前面都有
将不受影响。但这不好,请考虑在块中使用另一个名称。< /P>
[*1..10].each do |n|
  ...
  variable = 2
end

但即使我不放
它仍然存在。试试这个
variable=1[*1..10]。每个do | n,variable | variable=2 end-put变量
使用分号定义块局部变量显然不是很流行,因为我从未见过它(直到现在才知道)。不过,我不知道我是否会建议其他人不要使用它,因为Ruby monks认为这是一个值得添加的东西。
variable = 1
[*1..10].each do |n; variable|
  ...
  variable = 2
end