我有一个非常不寻常的行为,其中 q.pop 的返回 obj 没有相应地更新。我将用伪代码演示......
q = Queue.new
insert unique objects into the q...
while !q.empty? do
curr = q.pop
req = Typhoeus::Request.new("someLegitURL")
req.on_complete do |response|
puts curr #PROBLEM: same result every time!!!
end
end
^在这里,我面临的问题是,当我“放置curr”时,对象每次都是一样的!
如果我用这样的数组替换相同的代码:
arr = Array.new
insert unique objects into the arr...
arr.each do |curr|
... same thing ...
puts curr # NOT A PROBLEM: different result every time
... same thing ...
end
^在这里,我实际上得到了“puts curr”的独特输出。
有没有人遇到过这样的问题?
对问题/解决方案有任何见解吗?
谢谢。