Rubymine 将发现的变量标记为可能未定义。我认为答案是将在开始之外找到的变量移动,但然后我进入了一个永远不会退出的紧密循环。我确信这是一个块范围问题,但缺乏 ruby 经验来了解问题所在。我假设这是被标记的,因为found是在begin内声明的,所以这里的问题是..这是有效的代码还是 Rubymine 的检查器在这种情况下是错误的?
begin
found = false
@some_collection.keys.each do |key|
found = evaluate_collection(@some_collection[key], key) unless found
end
end while found