gpt4 book ai didi

scala - 尝试恢复获取 vs 尝试匹配

转载 作者:行者123 更新时间:2023-12-02 02:51:18 26 4
gpt4 key购买 nike

为了捕获异常,我可以使用 Try recover get:

Try(op) recover {
case e: FooException => log; default
} get

编辑:或 fold正如 Scala 2.12+ 的评论中指出的那样

或者我可以使用尝试匹配:
Try(op) match {
case Success(v) => v
case Failure(e: FooException) => log; default
case Failure(e)=> throw e
}

这两者有什么区别?哪个更地道?理由是什么?是否有任何性能影响?

最佳答案

match版本更好。有三种可能的结果(值、默认值、异常)和 match版本清楚地说明了这一点,而 recover版本比较晦涩。 recover版本也有裸get这通常是一个坏兆头。 match也可能表现得更好,尽管与 Try(op) 中的工作相比,任一版本的成本都会很小。 .

关于scala - 尝试恢复获取 vs 尝试匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52065278/

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