scala - 类似的Try block 尝试/最终在Scala中阻止

标签 scala functional-programming

scala Try的方式类似于什么:

timer.start()
try {
  doThis()
} finally {
  timer.cancel()
}

最佳答案

鉴于Try内部的异常仅创建了Failure值(与使用try时将控制权转移到外部catch块相对),原始finally块中的代码仅需要在Try之后执行。
换句话说,这将执行以下操作:

timer.start()
val result = Try{
  doThis()
}
timer.cancel()
result

据我所知,没有内置的快捷方式可以避免捕获result只是按原样返回它。

关于scala - 类似的Try block 尝试/最终在Scala中阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24007947/

相关文章:

rust - `.map(f)` 和 `.map(|x| f(x))` 有什么区别?

functional-programming - 是否可以在 OCaml 中使其完全多态?

scala - 通过 'foreach' 在 List[JsObject] 上组成不可变列表

scala - 修改从 Scala 中的方法返回的值(Highcharts lib)

scala - SBT:如何获取IntegrationTest中的所有定义?

scala - 编译错误Scala项目

scala - Slick 2.0 在表中映射 java.util.Date

python - 如何遍历模块的函数

haskell - Haskell 中的函数

scala - 有条件地使用类似构建器的函数