gpt4 book ai didi

ruby - Ruby 中的 catch 和 throw 有什么用?

转载 作者:数据小太阳 更新时间:2023-10-29 06:25:35 32 4
gpt4 key购买 nike

在大多数其他语言中,catch 和 throw 语句的作用与 Ruby 中的 begin、rescue 和 raise 语句的作用相同。我知道您可以使用以下两个语句执行此操作:

catch :done do
puts "I'm done."
end

if some_condition
throw :done
end

但这有什么用呢?谁能给我一个例子,说明 Ruby 中的 catch 和 throw 语句有什么用?

最佳答案

您可以使用它来跳出嵌套循环。

INFINITY = 1.0 / 0.0
catch (:done) do
1.upto(INFINITY) do |i|
1.upto(INFINITY) do |j|
if some_condition
throw :done
end
end
end
end

如果您在上面使用了 break 语句,它就会跳出内部循环。但是如果你想跳出嵌套循环,那么这个 catch/throw 会很有帮助。我用过here解决其中一个欧拉问题。

关于ruby - Ruby 中的 catch 和 throw 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3716801/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com