我正在尝试使用可回收宝石。
我有一个函数,该函数返回包装在如下所示的可重试块中的值。
Retriable.retriable do
x = some_function(1, 2)
end
....do something with x...
我弄清楚如何做到这一点的唯一方法是在块内使用全局变量,即@x,但我认为这不一定是最好的方法。如果有人可以向我指出一种更好的方法,我将不胜感激。
谢谢
答案 0 :(得分:3)
通常,您可以通过在循环外声明变量来解决此问题:
x = nil
%w[foo bar baz].each do |word|
x = word
end
puts x # => "baz"
在此处查看实际操作:https://repl.it/@jrunning/AbsoluteShamelessVerification
答案 1 :(得分:2)
这种确切的情况可以这样解决:
window.onload = function () {
var a = localStorage.getItem("imgid");
document.getElementById("demo").innerHTML = a;
if(a == 0){
document.getElementById("demo").innerHTML = "no image selected";
}
}
但是,总的来说,不能,不能在外部作用域中声明变量。这就是为什么我们 拥有 作用域。
答案 2 :(得分:0)
无论块返回什么,您都应该能够将值分配给新变量:
JsonProvider