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

时间:2019-05-12 15:13:21

标签: ruby

我有:

variable = 1

和使用相同名称变量的块:

[*1..10].each do |n|
  ...
  variable = 2
end

有没有办法避免更改外部变量(阴影?)

1 个答案:

答案 0 :(得分:1)

是的!从Ruby 1.9开始,Ruby引入了块局部变量,该变量不会以;开头。但这不好,请考虑在块中使用其他名称。

variable = 1
[*1..10].each do |n; variable|
  ...
  variable = 2
end