我正在尝试使用可重试的 gem。
我有一个返回值的函数,该值包含在如下所示的可重试 block 中。
Retriable.retriable do
x = some_function(1, 2)
end
....do something with x...
我想出如何做到这一点的唯一方法是在 block 内使用全局变量,即@x,但我认为这不一定是最好的方法。如果有人能指出更好的方法,我将不胜感激。
谢谢
最佳答案
在一般情况下,您可以通过在循环外声明变量来解决此问题:
x = nil
%w[foo bar baz].each do |word|
x = word
end
puts x # => "baz"
在此处查看实际效果:https://repl.it/@jrunning/AbsoluteShamelessVerification
关于ruby - 将 Ruby block 中的变量分配给更高的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53014914/