在Ruby中,var
和const
是不同的变量声明方式。var
声明的变量是可变的,而const
声明的变量是不可变的。
在循环中,每次迭代都会创建一个新的作用域。当使用var
声明变量时,每次迭代都会创建一个新的变量实例,因此可以在循环中重新赋值。例如:
for var in 1..5
var = var + 1
puts var
end
输出结果为:
2
3
4
5
6
而当使用const
声明变量时,每次迭代都会尝试创建一个新的常量,但由于常量是不可变的,所以会导致错误。例如:
for const in 1..5
const = const + 1
puts const
end
会抛出错误:
dynamic constant assignment (SyntaxError)
因此,在Ruby循环中,var
可以工作,而const
不能工作的原因是const
声明的变量是不可变的,无法在循环中重新赋值。
领取专属 10元无门槛券
手把手带您无忧上云