gpt4 book ai didi

ruby - Ruby 中的链式方法调用

转载 作者:数据小太阳 更新时间:2023-10-29 08:17:13 26 4
gpt4 key购买 nike

在 Ruby 中是否有一种“成功则继续”的优雅方式?像这样:

method1(a, b)
.and_then(method2)
.and_then(method3)
.fail { |x| 'something is wrong'}

最佳答案

我不相信有一种方法可以完全按照您所展示的方式进行操作,但是您可以改用 beginrescue block 。

所以代码看起来像这样:

begin
method1(a,b).method2.method3
rescue
p "something is wrong"
end

在这三种方法中的任何一种中,您都应该引发某种异常,只需调用

raise "Something is Wrong"

这将停止执行并运行救援 block 。如果您想从发生 raise 调用的执行上下文中获取某种数据,您将需要实现自己的错误类型或使用现有类型。如果您希望这样做,则需要按如下方式更改救援声明

rescue => e

或者如果你有类型

rescue ArgumentError => e

这有点复杂,所以可以找到很好的文章here

这仅在您调用的方法实际引发异常时才有效。

关于ruby - Ruby 中的链式方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29713117/

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