And*_*rio 0 c ruby syntax scope
在C中,我可以做到
int scoped_var = 2;
{
int scoped_var = 3;
}
Run Code Online (Sandbox Code Playgroud)
我如何在Ruby中执行此操作?
如果您希望将一个块本地变量命名为与作用域中的变量相同,则在不设置先前定义的变量的情况下定义块,您可以使用以下语法:
foo = 1
items.each do |item;foo|
foo = item.number
end
puts foo #=> 1
Run Code Online (Sandbox Code Playgroud)
您也可以在不传递块变量的情况下执行此操作:
x = Proc.new { |;foo| ... }
Run Code Online (Sandbox Code Playgroud)
请注意,这只是Ruby 1.9+.