我无法在网上找到任何有用的资源来分解Ruby的不同流控制选项。
让我们假设我在一个方法中迭代一个数组:
def a_method
things.each do |t|
# control options?
end
end
这里有哪些不同的流量控制选项?他们有什么不同?
答案 0 :(得分:16)
retry
可以在救援区内使用,在导致异常的条件得到纠正后跳回到开始区块。在一个区块内,它具有跳到屈服方法开始的效果。因此,在每个内部意味着重试将跳转到循环的开始。
return
将从其内部的方法返回 - 在本例中来自a_method
。
break
将从yielding方法返回 - 在这种情况下来自each
(如果在每个块的结尾和之间发生了某些事情,则与从a_method
返回的情况不同结束a_method
)。
next
将从块中返回,从而跳转到things
中的下一个项目。
redo
将跳转到块的开头,从而重复当前的迭代。