在C中,我可以做到
int scoped_var = 2;
{
int scoped_var = 3;
}
我如何在 Ruby 中执行此操作?
最佳答案
如果您希望 block 局部变量的名称与定义该 block 的作用域中的变量相同,而无需设置先前定义的变量,则可以使用以下语法:
foo = 1
items.each do |item;foo|
foo = item.number
end
puts foo #=> 1
您也可以在不传递 block 变量的情况下执行此操作:
x = Proc.new { |;foo| ... }
请注意,这仅适用于 Ruby 1.9+。
关于c - Ruby 中没有操作范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10166393/