如何将实例变量作为参数传递给 block ?
这在 Ruby 1.9 中不起作用(形式参数不能是实例变量)。
awesome do |foo, @bar|
puts 'yay'
end
最佳答案
Ruby 1.9 使 block 参数成为 block 的局部参数。这也意味着 block 参数不能再是全局变量或实例变量。您可以根据自己的目的使用闭包:
@foo = 10
1.times do |i|
puts @foo
end
# => "10"
更新 除了使用实例变量,局部变量可以帮助您:
foo = 10
1.times do |i|
puts foo
end
# => "10"
在这种情况下,您不会遇到与不同上下文中的代码执行相关的问题。
关于ruby - block 中的实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8103352/