Ruby中的变量定义内部循环

时间:2013-01-06 13:42:41

标签: ruby

这是Ruby中的while循环

x = 0
while x < 1 do
   inside_var = "I'm inside"
   x += 1
end

puts inside_var

虽然inside_var是在while循环中定义的,但它在它之外是可见的。它与Java,C#等完全不同。

我想知道,我错过了什么吗?它真的是如何运作的吗?对于Ruby中的任何类型的循环都是如此吗?

1 个答案:

答案 0 :(得分:6)

是的,它的确如此有效。它适用于所有内置控制结构(whileforifbegin ... end),但不适用于块。因此,如果您使用eachtimes重写代码,它的行为就像您期望的那样。